Blueprint概念
简单来说,Blueprint 是一个存储操作方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求。
Flask使用Blueprint让应用实现模块化,在Flask中,Blueprint具有如下属性:
1、一个应用可以具有多个Blueprint
2、 可以将一个Blueprint注册到任何一个未使用的URL下比如 “/”、“/sample”或者子域名
3、在一个应用中,一个模块可以注册多次
4、Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
5、在一个应用初始化时,就应该要注册需要使用的Blueprint
但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。
————————————————
基本使用
1、创建一个蓝图对象
admin=Blueprint('admin',__name__)
当然,咱还可以为蓝图单独指定一个模版文件文件夹、静态文件文件夹、静态文件的url前缀...
admin = Blueprint('admin', __name__, template_folder='admin_templates',static_folder='admin_static', static_url_path='/admin_static')
2、在这个蓝图对象上进行操作:
注册路由、指定静态文件夹、注册模版过滤器
@admin.route('/')
def admin_index():
return 'admin_index content'
3、在应用对象上注册这个蓝图对象:
app.register_blueprint(admin,url_prefix='/admin')
url_prefix指定,访问前缀,如下访问蓝图下的admin_index视图,则访问 url/admin
通常,我们把蓝图放在基它文件中,在注册蓝图之前还需要导入一下自己定义的蓝图模块
form models.admin import *
当然,你在哪里注册取决于,项目规划,有在模块内__init__.py 中注册的,也有在app.py或main.py中注册的。