Flask-Blueprint
来源:互联网 发布:java ssh linux 编辑:程序博客网 时间:2024/05/25 01:36
blueprint把不同功能的module分开。可以让应用模块化,针对大型应用。
蓝图的基本概念:在蓝图被注册到应用之后,所要执行的操作的集合。当分配请求时, Flask 会把蓝图和视图函数关联起来,并生成两个端点之前的 URL 。
比如只有一个run.py。有些功能需要多人分开来写,有些功能会有交错的可能,代码位置也不会在一起,这样可以用蓝图来开关一些模块(功能)和宏定义类似,但不是可插拔的应用而是一套可以注册在应用中的操作,并且可以注册多次。或者简单滴需要降低耦合,提高模块复用率。比如开发环境和应用环境的不同,可以用蓝图来切换环境。
蓝图的缺点是一旦应用被创建后,只有销毁整个应用对象才能注销蓝图。
下面是一个最精简的例子:
├── my_flasky ├── app ├── __init__.py └── main ├── __init__.py └── views.py └── manage.py==================================================================my_flasky/app/__init__.py #encoding:utf8 from flask import Flask def create_app(): app = Flask(__name__) #从/main/__init__.py中获取蓝图,并注册蓝图 from .main import main as main_blueprint app.register_blueprint(main_blueprint) return app=================================================my_flasky/app/main/__init__.py #encoding:utf8 from flask import Blueprint main = Blueprint('main',__name__) #main为蓝本名称,__name__为蓝图所在的模块或者包 #切记最后再导入main文件包下的模块,以防止循环导入报错 from . import views=================================================================my_flasky/app/main/views.py #encoding:utf8 from . import main #导入蓝图 @main.route('/') def index(): return '<h1>我的蓝图</h1>'====================================================================my_flasky/manage.py #encoding:utf8 from app import create_app app = create_app() if __name__ == '__main__': app.run(host='0.0.0.0',port=80,debug=True)
本例实现了一个最简单的flask示例,它实现的功能和以下代码一样:
#encoding:utf8from flask import Flaskapp = Flask(__name__)def index(): return '<h1>我的蓝图</h1>'if __name__ == '__main__': app.run()
这个确实简单的不是一丁点,但是为什么要写成上面的格式呢?
对于简单的例子或许看不出来,但是稍微复杂一点的flask应用肯定不是一个人能完成的,所以就需要分工,一人负责一块,而Blueprint就是负责组装它们的,实现模块化管理,要想学好flask这东西肯定是绕不过去的。
实现过程(以例一为例):1,在视图模块所在的包(main)内创建蓝本,并将所有的视图模块(views.py)导入;2,在存放视图模块包的目录下(app)构造create_app函数,在函数里完成蓝本的注册,可以注册多个;3,在根目录(my_flasky)中通过调用2中构造的函数创建启动脚本(manage.py)。
大概就是这样:
views.py(可以多个)—>main(可以多个)—>app(就一个)—>manage.py
- Flask-Blueprint
- flask-Blueprint
- flask Blueprint用法
- Flask之Blueprint
- flask 中的蓝图 blueprint 的理解
- flask 中的蓝图 blueprint 的理解
- Flask 用Blueprint实现模块化的应用
- Python进阶(四十九)-初识Flask Blueprint
- python flask,file structure ,blueprint简单应用
- blueprint
- Blueprint
- BLUEPRINT
- blueprint
- flask使用Blueprint进行多模块应用的编写
- 使用Flask快速开发WEB应用-第二篇:Blueprint模块的应用
- 通过Blueprint进行模块化的Flask应用开发[转]
- 通过Blueprint进行模块化的Flask应用开发[转]
- flask蓝图(Blueprint)简单测试例子运行不成功的原因:注册时机不对
- 《黑客与画家读后感》
- WTL的窗口子类化与超类化
- 网易视频云:专注于技术服务——异步通知系统
- linux挂在NAS 文件名乱码
- Android 使用DisplayImageOptions加载头像 自定义圆形头像
- Flask-Blueprint
- 合并多个python list以及合并多个 django QuerySet 的方法在用python或者django写一些小工具应用的时候,有可能会遇到合并多个list到一个 list 的情况。单纯从技
- 音频信号分帧
- 匹配所有合法的HTML标签的正则表达式
- 实现小尝试—C++ STL bitset
- CoordinatorLayout与CollapsingToolbarLayout实现视差滚动动画和Toolbar滚动
- 字符串的替换
- 【通讯术语】MSIN
- 网页加载去除网页元素 webView