Flask蓝图(Blueprint)详解:模块化开发与注册实战

山间有风
山间有风
发布时间:2026-10-16| 6人浏览过
原创

本文详细介绍Flask中蓝图(Blueprint)的概念与作用,阐述如何利用蓝图实现应用的模块化开发。内容涵盖蓝图的创建、静态与模板路径配置、视图函数的绑定以及蓝图的注册流程,帮助开发者有效管理大型项目中的业务逻辑与URL前缀。

前序

1、蓝图

在构建Flask应用时,若业务视图数量庞大,是否可以将按特定逻辑划分的业务单元独立维护,并将各单元涉及的视图、静态资源及模板文件分离管理?

例如,从业务维度可将应用拆分为用户模块、商品模块和订单模块。本文探讨如何分别开发这些独立单元,并最终将它们整合至同一个Flask应用中。

2、蓝图介绍

在Flask框架中,推荐使用蓝图(Blueprint)来实现模块化的组织与管理。

蓝图本质上是一个存储一组视图方法的容器对象,具备以下核心特性:

一个Flask应用可以注册多个蓝图实例。

可以将蓝图注册到任意未使用的URL前缀下,例如“/user”或“/goods”。

蓝图可以独立配置自己的模板目录、静态文件目录或其他通用工具函数,它并非必须包含应用的视图和

路由函数。

在应用初始化阶段,应当注册所有需要使用的蓝图。

需要注意的是,蓝图本身不是一个完整的应用,无法独立运行,必须注册到某个具体的Flask应用实例中才能生效。

一、创建蓝图包

鉴于项目中业务逻辑复杂,建议创建一个蓝图包。该包内应包含static目录、templates目录以及初始化的__init__.py文件。

目录结构示意如图:

二、使用步骤

1、在初始化__init__.py文件中创建蓝图

1、在__init__.py中定义蓝图

参数说明: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、新建一个用于定义视图函数的Python文件。

2、该文件需导入之前创建的蓝图对象。

#这个文件创建视图函数
#导入蓝图
from . import order_bp
@order_bp.route('/co')
def test1():
    return "hello python"

3、调用方式说明

1、当主应用需要使用某个视图函数时,可通过已注册的蓝图进行调用。

2、注意:代码中的order_bp是自定义的蓝图名称,而order是蓝图包的名字(示例中order_bp对应order包)。

3、url_prefix='/order'用于设置客户端(浏览器)访问服务器时的URL前缀,后续需配合视图函数的装饰器使用。

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蓝图内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。