Flask 应用开发:利用工厂模式实现多环境配置与实例化

Owen
Owen
发布时间:2026-10-12| 3人浏览过
原创

本文介绍 Flask 开发中常用的工厂模式,通过 create_app() 工厂函数动态创建应用实例。该方法支持传入不同配置名称,实现多环境配置切换、蓝图注册及扩展功能集成,便于测试与部署,避免硬编码实例化逻辑。

1、工厂模式

在面向对象编程体系中,工厂模式属于创建型设计模式,是开发阶段高频使用的方案之一。其核心机制是通过一个接口函数或对象来生成其他对象并返回结果,该模式下不对外暴露具体的对象创建逻辑,此类接口函数通常被称为工厂函数。工厂模式的核心优势在于能够将类的实例化过程推迟至子类中执行,这意味着在程序运行期间可以动态决定实例化哪一个类,而非在编译阶段强制确定。

2、使用工厂方法创建 app 对象

此前我们通常使用 app=Flask(__name__) 来创建 Flask 应用实例。然而,若需创建多个实例且各实例依赖不同的配置,直接实例化将变得繁琐。此时,可通过调用一个 create_app() 函数来返回应用实例,通过传入不同的配置参数来生成差异化的应用实例。此处的 create_app() 函数即为工厂函数,这种实现方式被称为工厂方法。

采用工厂方法的优势主要体现在以下方面:

  • 将应用实例的创建过程委托给工厂函数,通过传入不同的配置参数,能够便捷地生成适用于不同运行环境的应用程序。
  • 支持快速切换不同配置,进而切换对应配置的应用实例,这为测试环节和部署流程提供了极大的便利。

接下来,我们在之前的 Flask 应用主程序中引入工厂函数进行改造:

def create_app(config_name):

    config = config_dict.get(config_name)

    app = Flask(__name__)

    app.config.from_object(config)  

    ......

    # 注册蓝图

    app.register_blueprint(user_blue)

    app.register_blueprint(admin_blue)



    return app

工厂函数接收配置名称 config_name,支持在应用程序的不同位置传入不同的配置名称以创建相应的实例。除上述代码展示的内容外,还可以将注册蓝图的代码放入工厂函数中;此外,错误处理函数、上下文处理函数、日志处理函数等接收程序实例 app 作为参数的函数,均可纳入工厂函数中进行处理。工厂函数类似于一条生产线,在创建完应用实例 app 后,执行一系列注册函数为实例 app 注册扩展功能,待执行完毕返回 app 时,即可得到一个包含所有期望扩展功能的应用实例。

至此,关于 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 算法库。