【flask】工厂函数和蓝本的作用

Flask学习中的工厂函数和蓝本


程序的工厂函数在app包的构造文件中定义,即__init__.py。这个构造文件导入大多数正在使用的Flask扩展。不过由于尚未初始化所需的程序实例,所以没有初始化扩展,创建扩展类时也没有向构造函数传入参数。create_app()函数就是程序的工厂函数,他接受一个程序使用的配置名作为参数,该配置名在config.py文件中定义。程序创建,配置后,就能初始化扩展了。在之前创建的扩展对象上调用init_app()可以完成初始化过程。

转换成程序工厂函数的操作让定义路由变得复杂了。本来我们单脚本文件可以直接使用app.route修饰器的。现在由于程序是在运行时创建的,只有调用create_app()之后才能使用app.route修饰器,然而这时才定义路由就太晚了。为了解决使用工厂函数新带来的问题,Flask提供了蓝本的解决方案。蓝本和程序类似,也可以定义路由,不同的是,在蓝本中定义的路由处于休眠状态,直到蓝本注册到程序上,路由才会成为程序的一部分。这样一来,使用位于全局作用域的蓝本时,定义路由的方法几乎和单脚本程序一样。为了使蓝本有更大的灵活性,建议使用更结构化的方式在包中的多个模块中创建蓝本,为此,在程序包中创建一个子包,专门保存蓝本。蓝本的创建是通过实例化一个Buleprint类对象,创建时必须传入两个参数:蓝本的名字和蓝本所在的包或者模块,这样,模块就能和蓝本产生关联。另外蓝本在工厂函数中注册到程序上。

本文转自

转载于:https://www.cnblogs.com/wangjian1226/p/10521042.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值