赞
踩
蓝图(Blueprint):将各个业务进行区分,然后每一个业务单元可以独立维护,Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的。
Demo目录结构:
static:存放静态文件
templates:存放模板文件,例如html......
views:存放视图文件,示例中包含admin.py、user.py
__ init__:初始化文件
manager.py:启动文件
admin.py代码:
- # 导入蓝图
- from flask import Blueprint
-
- # 创建蓝图实例
- ad = Blueprint('ad', __name__, url_prefix="/admin")
-
- # 通过蓝图实例创建路由及视图
- @ad.route('/adminManager')
- def adminManager():
- return 'adminManager'
user.py代码:同admin.py
- from flask import Blueprint
-
- user = Blueprint('user', __name__, url_prefix="/info")
-
-
- @user.route("/getUserInfo")
- def getUserInfo():
- return "getUserInfo"
__ init __代码:
- from flask import Flask
- # 导入视图文件
- from .views import admin
- from .views import user
-
- # 创建flask实例对象
- app = Flask(__name__)
-
- # 蓝图注册
- app.register_blueprint(user.user)
- app.register_blueprint(admin.ad)
manager.py代码:启动应用
- from pro_flask import app
-
- if __name__ == '__main__':
- app.run();
通过以上简单示例,可以将业务进行分层,并通过访问不同蓝图下的路径执行各个业务逻辑。url_prefix可以设置业务前缀,访问的时候需要加上,比如:http://127.0.0.1:5000/info/getUserInfo;如果单纯访问http://127.0.0.1:5000/getUserInfo是访问不到的。
蓝图(Blueprint)对象中常用传参(源码):
- def __init__(
- self,
- name: str, # 蓝图的名称:示例中的 ad = Blueprint('ad', __name__)
- import_name: str, # 程序所在的包,传__name__
- static_folder: str | os.PathLike[str] | None = None, # 静态文件存储文件夹目录中的static
- static_url_path: str | None = None, # 静态模板访问路径
- template_folder: str | os.PathLike[str] | None = None, # 模板文件存储文件夹,目录中的templates
- url_prefix: str | None = None, # 路径前缀
- subdomain: str | None = None,
- url_defaults: dict[str, t.Any] | None = None,
- root_path: str | None = None,
- cli_group: str | None = _sentinel, # type: ignore[assignment]
- ):
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。