【Flask】创建一个蓝图
生活随笔
收集整理的这篇文章主要介绍了
【Flask】创建一个蓝图
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
蓝图
在一个Flask 应用项目中,如果业务视图过多,可否将以某种方式划分出的业务单元单独维护,将每个单元用到的视图、静态文件、模板文件等独立分开?
例如从业务角度上,可将整个应用划分为用户模块单元、商品模块单元、订单模块单元,如何分别开发这些不同单元,并最终整合到一个项目应用中?
一、蓝图介绍
在Flask中,使用蓝图Blueprint来分模块组织管理。
蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点:
- 一个应用可以具有多个Blueprint
- 可以将一个Blueprint注册到任何一个未使用的URL下比如 “/user”、“/goods”
- Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
- 在一个应用初始化时,就应该要注册需要使用的Blueprint
二、使用步骤
1、单个文件的蓝图
使用蓝图可以分为三个步骤
特别注意1:在应用中注册蓝图时使用url_prefix参数指定
2、独立模块的蓝图(用的最多)
特别注意2:创建蓝图的代码,放到__init__文件中
创建蓝图代码块(__init__文件)
特别注意3:第六行代码一定要写from register.register import register
为什么呢?
执行项目python app.py,先执行app.py文件中第13行注册蓝图,遇到名称为register_bp的蓝图,随后代码去__init__文件中找到该蓝图第4行,但是操作蓝图的视图加载不出来,所以程序会报错。所以要在__init__文件中,创建完蓝图之后,导入蓝图视图模块
from flask import Flask,Blueprint#创建蓝图,对应的register目录 register_bp=Blueprint('register',__name__)from register.register import register操作蓝图代码块(register.py)
from flask import Flask,Blueprint from register import register_bp#蓝图上操作,注册路由 @register_bp.route('/') def register():return "注册页面"注册蓝图代码块(app.py)
from flask import Flask from users import * from order.order_func import * from login import login_bp from register import register_bp app = Flask(__name__)#注册蓝图 app.register_blueprint(user_bp,url_prefix='/users')#在应用对象上注册蓝图 app.register_blueprint(register_bp,url_prefix='/register')@app.route('/') def hello_world():return 'Hello World!'if __name__ == '__main__':app.run(debug=True)3、蓝图中的静态资源和模板
和应用对象不同,蓝图对象创建时不会默认注册静态目录的路由。需要我们在 创建时指定 static_folder 参数。
例如
案例:
创建蓝图代码块
from flask import Flask,Blueprint#创建蓝图,对应的register目录 register_bp=Blueprint('register',__name__,static_folder='static',template_folder='templates')from register.register import register定义蓝图视图代码块
from flask import Flask,Blueprint from register import register_bp#蓝图上操作,注册路由 @register_bp.route('/') def register():return "注册页面"注册蓝图代码块
from flask import Flask from users import * from order.order_func import * from login import login_bp #from register.register import register_bp from register import register_bpapp = Flask(__name__)#在应用对象上注册蓝图 app.register_blueprint(login_bp,url_prefix='/login')#在应用对象上注册蓝图 app.register_blueprint(register_bp,url_prefix='/register')@app.route('/') def hello_world():return 'Hello World!'if __name__ == '__main__':app.run(debug=True)启动项目,访问静态文件
附目录结构
总结
以上是生活随笔为你收集整理的【Flask】创建一个蓝图的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【Flask】ORM的关联关系
- 下一篇: 【Flask】数据的CRUD之增加和查询