Flask蓝图(Blueprint)详解:模块化开发与注册实战
本文详细介绍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_func2、创建视图函数文件
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蓝图内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









