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

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

Demo目录结构:

static:存放静态文件

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

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

__ init__:初始化文件

manager.py:启动文件


admin.py代码:

python 复制代码
# 导入蓝图
from flask import Blueprint
​
# 创建蓝图实例
ad = Blueprint('ad', __name__, url_prefix="/admin")
​
# 通过蓝图实例创建路由及视图
@ad.route('/adminManager')
def adminManager():
    return 'adminManager'

user.py代码:同admin.py

python 复制代码
from flask import Blueprint
​
user = Blueprint('user', __name__, url_prefix="/info")
​
​
@user.route("/getUserInfo")
def getUserInfo():
    return "getUserInfo"

__ init __代码:

python 复制代码
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代码:启动应用

python 复制代码
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)对象中常用传参(源码):

python 复制代码
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]
):
相关推荐
终焉代码17 分钟前
【C++】C++11特性学习(1)——列表初始化 | 右值引用与移动语义
c语言·c++·学习·1024程序员节
gfdgd xi22 分钟前
Wine运行器3.4.0——虚拟机安装工具支持设置UEFI启动
android·windows·python·ubuntu·架构
乾坤瞬间31 分钟前
【Java后端进行ai coding实践系列】如何使用ai coding实现计划任务增删改查
java·人工智能·python
爱做ppt的阿伟39 分钟前
油猴脚本学习1——元数据头部
学习
FlagOS智算系统软件栈44 分钟前
全球 PyTorch 大会与 Triton 大会释放强信号:算子语言繁荣和分化背后,编译器核心地位日益凸显
人工智能·pytorch·python·科技·深度学习·ai·开源
半夏知半秋1 小时前
redis-哨兵模式配置整理
数据库·redis·笔记·后端·学习·lua·安全架构
帅帅dl1 小时前
Git学习(2)
学习
来酱何人1 小时前
为什么要学深度学习?——从“传统编程”到“数据驱动”的思维跃迁(附AI落地案例)
人工智能·python·深度学习·机器翻译
程序员爱钓鱼1 小时前
Python编程实战 - Python基础入门 - 容器的常用操作与应用
后端·python·bpython
程序员爱钓鱼1 小时前
Python编程实战 - 函数与模块化编程 - 函数的定义与调用
前端·后端·python