一、什么是Blueprint?为何要使用它?
Blueprint有个很形象的中文名称——蓝图,提起蓝图,是否想起了小时候我们曾对未来的种种规划?是否记得,我们要在人生的蓝图上干啥干啥?简而言之,我个人看来,蓝图就是对一组事务的安排和规划,放到flask中,便成了对路由的一种规划。
使用它的原因有两点:
- 解决上帝文件,即循环引用问题
– 如上图,这种引用方式便会造成循环引用,造成项目启动报错。
- 解决文件冗长,难以管理问题
– 上面的循环引用,有人可能会说,把路由函数全写在入口文件里不就行了吗?诚然,这样的确不会报错,但试想下,若我们将所有的路由都写入口文件中,五六个没啥问题,甚至一二十个都勉强可接受,但更多呢?可想而知,随着项目深入,这个文件将变得十分可怕,项目的扩展和维护会变得极其糟糕!
因此,对路由进行合理的管理是必须的!
二、使用方法
知道了blueprint为何物,那自然要进行使用。下面是基本的使用方法。
2.1 实例化及路由创建
from flask import Blueprint
blue = Blueprint('user_blue',__name__) #实例化
@blue.route('/use-blueprint')
def use_blueprint():
return '蓝图的基本使用方法'
注:新版的flask中已经集成了blueprint,直接导入即可。user_blue为当前路由名称,可自由定义。
2.2 注册
from view import blue #导入蓝图实例
app.register_blueprint(blueprint=blue,url_prefix='/user/')
注:注册写在项目入口文件中!url_prefix:指定该路由的统一前缀,一般根据操作的实体类命名。
2.3 访问
假设本地访问,端口为默认的5000,访问上面例子中use_blueprint函数,那可以写:
1、http://127.0.0.1:5000/user/use-blueprint #浏览器访问
#前端模板语法访问,url_for('路由名称.路由函数名')
2、{{ url_for('user_blue.use_blueprint') }}