Flask开发(十三)Flask视图高级技术 Flask蓝图
内容纲要
本篇导读:
- 蓝图的使用
随着业务代码的增加,将所有代码都放在单个程序文件中是非常不合适的。这样不仅会让阅读代码变的困难,而且会给后期代码维护带来麻烦。Flask蓝图提供了模块化管理程序路由的功能,是程序结构清晰、简单易懂。
一个执行程序文件中,如果功能代码过多,是不方便后期维护的。如何实现程序代码模块化,根据具体功能模块的实现,划分成不同的分类,降低各功能模块之间的耦合度呢?这是就要使用到flask.Blueprint(蓝图)了。
蓝图的定义:在蓝图被注册到应用之后,所要执行的操作的合集。当分配请求时,Flask会把蓝图和视图函数关联起来,并生成两个端点之间的URL。
新建app.py、news.py、product.py三个文件,其中app.py的文件内容如下:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' app.register_blueprint(news.new_list) app.register_blueprint(products.product_list) if __name__ == '__main__': app.run()
new.py文件内容如下:
from flask import Blueprint new_list=Blueprint('news',__name__) @new_list.route('/news') def new(): return '这是新闻模块!'
Blueprint()对象的的第一个参数可以看做是蓝图的名称,第二个参数__name__用作初始化。在一个app里,蓝图的名称不能与其他蓝图的名称重复,也不能与视图函数的名称相同。
products.py文件内容如下:
from flask import Blueprint product_list=Blueprint('products',__name__) @product_list.route('/products') def product(): return '这是产品模块'
运行效果如下:
蓝图的目的是实现各个模块的视图函数卸载不同的py文件中。主视图中导入分路由视图的模块,并注册蓝图对象。
[successbox title="本篇习题"]
1.请用装饰器相关知识,编程实现统计一段程序中多个函数各自执行的时间。
[/successbox]
阅读剩余
版权声明:
作者:雪落长安
链接:https://blog.wlbc321.cn/index.php/2021/05/24/flask13/
文章版权归作者所有,未经允许请勿转载。
THE END