找回密码
 立即注册

用蓝图实现模块化的应用

2022-2-22 10:48| 发布者: 笨鸟自学网| 查看: 3079| 评论: 0

摘要: 0.7 新版功能.Flask 用蓝图(blueprints)的概念来在一个应用中或跨应用制作应用组件和支 持通用的模式。蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用 上注册操作的核心方法。一个Blueprint对象 ...


模板

如果你想要蓝图暴露模板,你可以提供 Blueprint 构造函数中的 template_folder 参数来实现:

admin = Blueprint('admin', __name__, template_folder='templates')

像对待静态文件一样,路径可以是绝对的或是相对蓝图资源文件夹的。模板文件夹会 被加入到模板的搜索路径中,但是比实际的应用模板文件夹优先级低。这样,你可以 容易地在实际的应用中覆盖蓝图提供的模板。

那么当你有一个 yourapplication/admin 文件夹中的蓝图并且你想要渲染 'admin/index.html' 模板,且你已经提供了 templates 作为 template_folder ,你需要这样创建文件: yourapplication/admin/templates/admin/index.html

构造 URL

当你想要从一个页面链接到另一个页面,你可以像通常一个样使用 url_for() 函数,只是你要在 URL 的末端加上蓝图的名称和一个点( . )作为前缀:

url_for('admin.index')

此外,如果你在一个蓝图的视图函数或是模板中想要从链接到同一蓝图下另一个端点, 你可以通过对端点只加上一个点作为前缀来使用相对的重定向:

url_for('.index')

这个案例中,它实际上链接到 admin.index ,假如请求被分派到任何其它的 admin 蓝图端点。

123
上一篇:请求上下文下一篇:Flask 扩展

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2025-8-31 01:00 , Processed in 0.035491 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2017 Discuz Team. Template By 【未来科技】【 www.wekei.cn 】

返回顶部