flask中BluePrint蓝图的使用

为什么要使用蓝图

    1. 使应用模块化。
    1. 提高代码的内聚性,降低代码的耦合性。

如何在flask中创建蓝图

    1. 在工作目录中右击创建Python packages包,创建出对应功能模块的包,其中会自动生成init模块,在init中创建BluePrint蓝图。
    1. init模块中导入对应的模块
    1. 创建蓝图对象
    1. 将路由注册到蓝图,建立蓝图和视图的联系
    1. 将蓝图注册到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([<Rule '/orders/order' (HEAD, OPTIONS, GET) -> order111.order1>,
 <Rule '/users/login' (HEAD, OPTIONS, GET) -> users.login1>,
 <Rule '/users/info' (HEAD, OPTIONS, GET) -> users.info>,
 <Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>])

由视图路由的映射关系可以看出,在创建蓝图对象时的参数url_prefix会加到访问路由url的前缀,而蓝图名会写在对应的视图函数名前,以唯一确定执行的视图函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值