对 Flask 蓝图(Blueprint)的理解?

蓝图的定义

蓝图 /Blueprint 是 Flask 应用程序组件化的方法,可以在一个应用内或跨越多个项目共用蓝图。使用蓝图可以极大地简化大型应用的开发难度,也为 Flask 扩展 提供了一种在应用中注册服务的集中式机制。

蓝图的应用场景

(1) 把一个应用分解为一个蓝图的集合。这对大型应用是理想的。一个项目可以实例化一个应用对象,初始化几个扩展,并注册一集合的蓝图。

(2) 以 URL 前缀和/或子域名,在应用上注册一个蓝图。 URL 前缀/子域名中的参数即成为这个蓝 图下的所有视图函数的共同的视图参数(默认情况下)。

(3) 在一个应用中用不同的 URL 规则多次注册一个蓝图。

(4) 通过蓝图提供模板过滤器、静态文件、模板和其它功能。一个蓝图不一定要实现应用或者视图函 数。

(5) 初始化一个 Flask 扩展时,在这些情况中注册一个蓝图。

蓝图的缺点

不能在应用创建后撤销注册一个蓝图而不销毁整个应用对象。

使用蓝图的三个步骤

(1) 创建一个蓝图对象

blue = Blueprint("blue",__name__)

(2) 在这个蓝图对象上进行操作 ,例如注册路由、指定静态文件夹、注册模板过滤器…

@blue.route('/')
def blue_index():
return 'Welcome to my blueprint'

(3) 在应用对象上注册这个蓝图对象

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

发表评论

后才能评论