flask Blueprint 的不解!

2013-09-05 16:33:07 +08:00
 cuijiudai
正在学flask,遇到问题:同时有多个 Blueprint 的时候,最后的一个Blueprint 指定的 template_folder 会覆盖其他的 Blueprint 的template_folder !!!不能每个 Blueprint 指定单独的 template_folder 吗?感觉找个设计对于各个 Blueprint 的独立开发相当不爽啊!
9400 次点击
所在节点    Flask
6 条回复
pengphy
2013-09-05 17:30:28 +08:00
额 明显可以的。。。

看docs:http://flask.pocoo.org/docs/blueprints/
simple_page = Blueprint('simple_page', __name__,
template_folder='templates')
cuijiudai
2013-09-05 17:33:37 +08:00
定义两个Blueprint ,
simple_page = Blueprint('simple_page', __name__,
template_folder='templates')

page2 = Blueprint('page2', __name__, template_folder='templates', static_folder='static')

#注册

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

app.register_blueprint(page2, url_prefix='/page2')


#这时候 simple_page 的 template_folder 会使用 page2 的 template_folder !!!而不是simple_page = Blueprint('simple_page', __name__,
template_folder='templates')指定的!
cuijiudai
2013-09-05 17:34:03 +08:00
@pengphy
定义两个Blueprint ,
simple_page = Blueprint('simple_page', __name__,
template_folder='templates')

page2 = Blueprint('page2', __name__, template_folder='templates', static_folder='static')

#注册

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

app.register_blueprint(page2, url_prefix='/page2')


#这时候 simple_page 的 template_folder 会使用 page2 的 template_folder !!!而不是simple_page = Blueprint('simple_page', __name__,
template_folder='templates')指定的!
pengphy
2013-09-05 17:36:50 +08:00
cuijiudai
2013-09-05 18:15:03 +08:00
@pengphy 我是官方的例子改的,没看出来,能加我qq,帮我看下例子吗 QQ:461774563
rleon
2018-08-31 15:42:28 +08:00
其实官方文档有说明 http://flask.pocoo.org/docs/1.0/blueprints/

多个 blueprint 的 template_folder 参数,会添加到系统的搜索路径下。这样,后面的 blueprint 路径会在前面。如果,多个 blueprint 都用类似 render_template("pages/index.html") ,则优先使用后面添加的 blueprint 下的 template_folder 路径。

官方建议是,使用用如 render_template("bp1/index.html") ,render_folder("bp2/index.html"),
并且放在路径 bp1/templates/bp1/index.html , bp2/templates/bp2/index.html 类似的结构下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/81430

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX