flask (blueprint)蓝图

首先说一下该死的概念:蓝图是解决视图函数的模块化,显然还是不明白到底是要干啥,为啥要用它?

第一个问题:为啥要用它?

蓝图的使用场景是大型的项目中,由于功能繁多,视图函数的数量也急速上升,于是我们就想可不可以把视图函数模块化,比如我想把和用户有关的放在一个users.py文件里,和商品有关的视图函数放在orders.py文件里。以下是详细‘推倒’过程,可以跳过。。。。

1.直接拆分


      2.上图的直接拆分会造成循环导包问题于是想采用延迟导包来解决报错问题,虽然不报错但是app.url_map中并没有注册上order.py中的函数:(如下图:)


    3.于是我们想起来了装饰器的基本原理来解决这个循环导包的问题:(如下图:)


这样就可以了吗?然并卵,这样写下去还是需要一大堆的代码,程序猿表示并不满足。。。。。。。。

---------------------------------------我是分割线--------------------------------------------------------------------------------

好了现在我们聊仔细聊聊蓝图到底帮我们做了什么:

    假设你是一家屠宰场的老板,一开始每天杀几百头猪,不觉得有啥问题,日子很平淡。慢慢的生意越来月好,什么鸡呀、鸭呀、羊啊都送到屠宰场来了,于是乎你想分类处理,猪在一个新车间宰,鸭在一个新车间宰,宰完了统一回收到老车间,但是有一个问题就是你们公司的检疫章子只有一个,而且只能放在原来的车间里不能乱跑,于是就造成了,老车间管新车间要宰好的肉,新车间管老车间要检疫公章(循环导包就这样产生了),导致新车间生产停滞,老车间正常开工。

你一看这样下去哪里行,于是你想,要不再刻一个章子(蓝图),在新车间先用着,完了之后我这边登记一下,表示认可你这个新章子就行了,这样每个车间都可以开动了,当然你可以每个车间都刻个新章子,即多个蓝图。

使用新章子完美实现了分流,但是注意外界买肉的(url请求进来)只会去老车间,所以每个新车间必须在老车间登记注册,当客人要查看那头猪是哪天杀的时候,就查新车间的盖章信息(查看哪个url对应的是哪个函数)。

总结来说可以理解为:分流(分仓库放);分权(各自盖章注册);最后统一登记认证,这样就完成了模块化要求》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值