蓝图的概念类似django的子应用,作用就是分模块开发,有关联的都放在一起。
蓝图的创建步骤:
-
新建一个包(一个包就是一个模块、等同于一个子应用)
-
在包的__init__.py中创建蓝图对象 。
蓝图对象所有的参数和功能与Flask()对象类似。
见:user下的__init__.py和views.py
-
在app中注册蓝图(子应用)(这玩意不就是和django的差不多嘛....)
PS.当然了,你完全可以将蓝图对象、视图函数都放在一个py文件中,只不过一般都是分开放的。
实例:
-
第一步:在项目目录下创建user包(等同于创建django的子应用)
-
第二步:编辑user包的__init__.py文件,在里面创建蓝图对象
from flask import Blueprint
# 创建蓝图对象
# 第一个参数:蓝图的名称,类似django中的子应用名称
# 第二个参数:和Flask(__name__)的意义是一样的。
user_bp = Blueprint("user", __name__)
# 延迟导入视图函数的集合模块(不然会出现循环导入的BUG)
from . import views
- 第三步:在user包下创建views.py,将视图函数单独放到一个模块中(方便管理)
# 导入第2步中创建的蓝图对象(实际上就是一个子应用app的引用)
from . import user_bp
# 剩余的使用方法和使用flask的app一样,比如指定路由:@app.route,这就是bp对象.route
@user_bp.route("/user/info", methods=["get", "post"])
def userinfo():
return "userinfo page"