Flask蓝图 作者:马育民 • 2019-06-17 15:53 • 阅读:10204 # 概述 在之前的讲解中,只用一个.py文件,当web应用功能较多,代码越来越多时,将代码都写在一个.py文件,显然是不合理的。 ### 模块化开发 模块化在工业中很常见,比如台式机,买来匹配的主板、CPU、内存、硬盘、显卡、机箱、显示器等,即可组装成一台电脑 软件模块化也是如此,比如将商城分为以下几个模块:商品模块、用户模块、商家模块、评价模块、管理员模块等,每个模块自成一个体系,由不同的程序员开发 ### 蓝图 在Flask中,蓝图可以实现web应用的 **模块化** 开发,一个蓝图定义了可用于单个应用的视图,模板,静态文件等等的集合。 # 感性认识 ### 子模块 创建admin.py文件,代码如下: ``` #coding=utf-8 from flask import Blueprint,render_template ''' 定义蓝图 ''' admin=Blueprint('admin',__name__,url_prefix='/admin') @admin.route('/') def index(): return render_template('admin/index.html') ``` ### 注册蓝图 在.py主文件中增加如下代码: ``` #coding=utf-8 from admin import admin app.register_blueprint(admin) ``` ### 测试 在启动服务的代码改成如下: ``` if __name__ == "__main__": print(app.url_map ) print('*'*50) print(app.view_functions) app.run(debug=True) ``` 运行.py文件,查看打印的```url_map```和```view_functions```,如下: ``` Map([ product>, admin.index>, login>, index>, ' (GET, OPTIONS, HEAD) -> static>]) ************************************************** {'static': >, 'admin.index': , 'index': , 'product': , 'login': } ``` 能够查看到蓝图中的 **路由** 和 **视图函数**。 **注意:** 蓝图中的路由url是有前缀```/admin```的,endpoint也是有前缀```admin```的 ### 浏览器访问 打开浏览器访问蓝图中的url,```http://127.0.0.1:5000/admin/```,注意蓝图admin中的路由是有前缀的 原文出处:http://malaoshi.top/show_1EF3X5fGu20T.html