在使用flask进行项目开发时,会把各个功能给拆分,通常视图函数与配置文件是分开的,实例化flask时,会存在一个循环引入的问题(这块儿不多说了 百度好多),蓝图就是解决循环引入的一种方案,它的作用:
可以代替flask实例app,在视图函数中,就可以直接使用蓝图来注册路由:
使用蓝图:
(1)安装蓝图插件:pip install flask-blueprint
( 在视图函数的文件中: )
(2)引入蓝图模块:from flask import Blueprint
(3)实例化蓝图:blue = Blueprint('blue',__name__) ,
参数一: ‘blue’ 是蓝图的名字(自定义的),且蓝图名字要唯一,因为可以注册多个蓝图;
参数二:蓝图所在的模块。
( 在flask初始化的基础文件配置中注册蓝图: )
(4)首先引入 视图函数中的蓝图实例 from xxx import blue
(5)把蓝图注册到flask实例中 app.register_blueprint ( blue ) 参数是蓝图实例
下边我们把功能拆分下:
manage.py 和 user.py 是同级文件:
app.py:
# app.py
from flask import Flask
from appweb import blue# 引入appweb模块中的 蓝图实例 blue
app = Flask(__name__)
app.register_blueprint(blue) # 注册路由
if __name__ == '__main__':
app.run(debug=True)
appweb.py :
# 从flask中导入蓝图
from flask import Blueprint,render_template
blue = Blueprint('user',__name__) # 实例化蓝图,参数一:蓝图名字(唯一的);参数二:蓝图所在的模块
# 使用蓝图来注册路由
@blue.route('/')
def fn():
return render_template('html.html')
运行app.py,上边html.html 是一个表单页面 :
关于蓝图的应用就这么些,以后会及时更新新知识!!!