Flask蓝图学习教程
作者:Ywx_csdn
前序
1、蓝图
在一个Flask 应用项目中,如果业务视图过多,可否将以某种方式划分出的业务单元单独维护,将每个单元用到的视图、静态文件、模板文件等独立分开?
例如从业务角度上,可将整个应用划分为用户模块单元、商品模块单元、订单模块单元,如何分别开发这些不同单元,并最终整合到一个项目应用中?
2、蓝图介绍
在Flask中,使用蓝图Blueprint来分模块组织管理。
蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点:
一个应用可以具有多个Blueprint
可以将一个Blueprint注册到任何一个未使用的URL下比如 “/user”、“/goods”
Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和
函数的
在一个应用初始化时,就应该要注册需要使用的Blueprint
但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。
一、创建蓝图包
因为在一个项目中业务较多,可以创建一个蓝图包,里面static目录文件、templates目录文件,初始化的_init_.py
如图:
二、使用步骤
1、在初始化__init_.py 文件创建蓝图
1、_init.py 创建蓝图
2、其中:static_folder=‘sta’ 是当前蓝图包静态文件访问路径,template_folder=‘tmp’ 是当前蓝图包templates下目录的访问路径。
3、 要引入当前目录的视图函数文件
#这个文件创建蓝图 from flask import * order_bp=Blueprint('order',__name__,static_folder='sta',template_folder='tmp') #引入视图函数 from . import order_func
2、创建视图函数文件
1、在新建一个创立视图函数的文件
2、 这个文件要导入建好的蓝图
#这个文件创建视图函数 #导入蓝图 from . import order_bp @order_bp.route('/co') def test1(): return "hello python"
3、调用问题
1、当在应用程序需要用到某个视图函数时,可以通过蓝图进行调用。
2、注意:from order import order_bp 中的order是我自己命名的蓝图包名字,order_bp是蓝图名字
3、 url_prefix=‘/order’ 是设置客户端(浏览器)访问服务器的前缀 后面加上访问视图函数的装饰器。
from flask import Flask app = Flask(__name__) #导入蓝图 from order import order_bp app.register_blueprint(order_bp,url_prefix='/order') if __name__ == '__main__': app.run()
客户端(浏览器)访问路径展示
4、访问静态文件
总结
- 在应用开发当中要用到功能非常多,以此对应的视图函数就很多。
- 因此通过创建不同的蓝图下的不同的视图函数,可以快速精准的定位到某个视图函数。
到此这篇关于Flask蓝图学习教程的文章就介绍到这了,更多相关Flask蓝图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!