蓝图(Blueprints)
Flask使用蓝图的概念来制作应用程序组件,并支持应用程序或应用程序中的通用模式。蓝图可以大大简化大型应用程序的工作方式,并为Flask扩展程序在应用程序上注册操作提供了一个重要手段。Blueprint对象与Flask应用程序对象的工作方式类似,但实际上并不是应用程序,相反,它的构建或扩展应用程序的蓝图。
蓝图优点:
将应用程序分解为一组蓝图,这对于更大的应用是更好的。一个项目可以实例化一个应用程序对象,初始化多个扩展,并注册一组蓝图。
在URL前缀的应用程序上注册蓝图,URL前缀的参数将成为蓝图中所有视图函数的常见视图参数。
- 在具有不同URL规则的应用程序中多次注册蓝图。
- 通过蓝图提供模版过滤器,静态文件,模版和其他实用程序。蓝图不必实现应用程序或查看功能。
- 在初始化Flask扩展时,在应用程序中注册这些蓝图。
Flask中的蓝图不是可插拔的应用程序,因为它实际上并不是一个应用程序 - 它是一组可以在应用程序中注册的操作集,甚至可以多次执行。
Blueprints仅在Flask级别提供分离,共享应用程序配置,并可根据需要在注册时更改应用程序对象。缺点是一旦创建应用程序就无法取消注册蓝图,而需要取消就只有销毁整个应用程序对象。
简单的说,蓝图记录了应用程序执行注册后的操作。Flask在调度请求时,将一个端点到另一个端点的URL视图函数与蓝图进行关联起来。
将项目模块化
首先我们先将项目的骨架搭建起来。
├── App # App应用程序 Flask对象
│ ├── Admin # 分块的Admin模块, 后台模块
│ │ ├── __init__.py # Admin模块初始化文件,创建admin蓝图对象
│ │ ├── models.py # 数据库模型文件
│ │ └── views.py # 逻辑控制文件
│ ├── Index <