阅读(1165) (20)

Flask 注册蓝图

2021-06-30 16:22:30 更新

那么你如何注册蓝图?像这样:

from flask import Flask
from yourapplication.simple_page import simple_page

app = Flask(__name__)
app.register_blueprint(simple_page)

如果你检查已经注册到应用的规则,你会发现这些:

[<Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>,
 <Rule '/<page>' (HEAD, OPTIONS, GET) -> simple_page.show>,
 <Rule '/' (HEAD, OPTIONS, GET) -> simple_page.show>]

第一个显然是来自应用自身,用于静态文件。其它的两个用于 ​simple_page​ 蓝图中的 show 函数。如你所见,它们的前缀是蓝图的名称,并且用一个点 ( ​.​ )来分割。

不过,蓝图也可以在不同的位置挂载:

app.register_blueprint(simple_page, url_prefix='/pages')

那么,这些果然是生成出的规则:

[<Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>,
 <Rule '/pages/<page>' (HEAD, OPTIONS, GET) -> simple_page.show>,
 <Rule '/pages/' (HEAD, OPTIONS, GET) -> simple_page.show>]

在此之上,你可以多次注册蓝图,虽然不是每个蓝图都会正确地响应这些。实际上, 蓝图能否被多次挂载,取决于蓝图是怎样实现的。