2018-05-21
为什么要使用蓝图
使应用模块化。
提高代码的内聚性,降低代码的耦合性。
如何在flask中创建蓝图
在工作目录中右击创建Python packages包,创建出对应功能模块的包,其中会自动生成init模块,在init中创建BluePrint蓝图。
在init模块中导入对应的模块
创建蓝图对象
将路由注册到蓝图,建立蓝图和视图的联系
将蓝图注册到app
以创建用户信息users和订单orders为例
users/init.py模块中
# coding=utf-8
# 导入Blueprint模块
from flask import Blueprint
# 创建蓝图对象 参数 1.蓝图名称 2.访问路由前缀
user_blue = Blueprint("users", __name__, url_prefix="/users")
# 导入视图函数
from . import view
orders/init.py模块中
# coding=utf-8
from flask import Blueprint
order_blue = Blueprint("order111", __name__, url_prefix="/orders")
from . import view
users/view.py模块中
# coding=utf-8
# 从users包中导入蓝图对象
from users import user_blue
# 将路由注册到蓝图,建立路由与视图函数的关系
@user_blue.route("/info")
def info():
return "info page"
@user_blue.route("/login")
def login1():
return "login page"
manage.py模块中
# coding=utf-8
from flask import Flask
# 导入蓝图对象
from users import user_blue
from orders import order_blue
app = Flask(__name__)
# 将蓝图注册到app
app.register_blueprint(user_blue)
app.register_blueprint(order_blue)
if __name__ == '__main__':
print(app.url_map)
app.run()
最终输出的url_map映射结果为:
Map([ order111.order1>,
users.login1>,
users.info>,
' (HEAD, OPTIONS, GET) -> static>])