当前位置:   article > 正文

Flask学习(六):蓝图(Blueprint)

Flask学习(六):蓝图(Blueprint)

蓝图(Blueprint):将各个业务进行区分,然后每一个业务单元可以独立维护,Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的。

Demo目录结构

static:存放静态文件

templates:存放模板文件,例如html......

views:存放视图文件,示例中包含admin.py、user.py

__ init__:初始化文件

manager.py:启动文件


admin.py代码:

  1. # 导入蓝图
  2. from flask import Blueprint
  3. # 创建蓝图实例
  4. ad = Blueprint('ad', __name__, url_prefix="/admin")
  5. # 通过蓝图实例创建路由及视图
  6. @ad.route('/adminManager')
  7. def adminManager():
  8.    return 'adminManager'

user.py代码:同admin.py

  1. from flask import Blueprint
  2. user = Blueprint('user', __name__, url_prefix="/info")
  3. @user.route("/getUserInfo")
  4. def getUserInfo():
  5.    return "getUserInfo"

__ init __代码:

  1. from flask import Flask
  2. # 导入视图文件
  3. from .views import admin
  4. from .views import user
  5. # 创建flask实例对象
  6. app = Flask(__name__)
  7. # 蓝图注册
  8. app.register_blueprint(user.user)
  9. app.register_blueprint(admin.ad)

manager.py代码:启动应用

  1. from pro_flask import app
  2. if __name__ == '__main__':
  3.    app.run();

       通过以上简单示例,可以将业务进行分层,并通过访问不同蓝图下的路径执行各个业务逻辑。url_prefix可以设置业务前缀,访问的时候需要加上,比如:http://127.0.0.1:5000/info/getUserInfo;如果单纯访问http://127.0.0.1:5000/getUserInfo是访问不到的。

蓝图(Blueprint)对象中常用传参(源码):

  1. def __init__(
  2.    self,
  3.    name: str, # 蓝图的名称:示例中的 ad = Blueprint('ad', __name__)
  4.    import_name: str, # 程序所在的包,传__name__
  5.    static_folder: str | os.PathLike[str] | None = None, # 静态文件存储文件夹目录中的static
  6.    static_url_path: str | None = None, # 静态模板访问路径
  7.    template_folder: str | os.PathLike[str] | None = None, # 模板文件存储文件夹,目录中的templates
  8.    url_prefix: str | None = None, # 路径前缀
  9.    subdomain: str | None = None,
  10.    url_defaults: dict[str, t.Any] | None = None,
  11.    root_path: str | None = None,
  12.    cli_group: str | None = _sentinel,  # type: ignore[assignment]
  13. ):

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/587053?site
推荐阅读
相关标签
  

闽ICP备14008679号