Flask 应用开发:利用工厂模式实现多环境配置与实例化
本文介绍 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 工厂模式内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









