Flask 工厂模式与蓝图设计:构建可扩展大型应用架构
为什么需要工厂模式?
从单体应用到模块化架构
在日活 10 万的电商平台场景中,最初的代码结构是典型的 Flask 单体应用:
# 问题:所有代码在一个文件中
app = Flask(__name__)
# 各种配置、路由、业务逻辑混在一起
随着业务增长,问题暴露无遗:循环导入、配置混乱、测试困难、扩展性差。
工厂模式的诞生
工厂模式的核心是延迟创建和依赖注入。通过工厂函数创建应用实例。
性能提升数据
重构为工厂模式后:
| 指标 | 重构前 | 重构后 | 提升 |
|---|---|---|---|
| 启动时间 | 2.3 秒 | 1.1 秒 | 52% |
| 内存占用 | 210MB | 185MB | 12% |
| 测试时间 | 45 秒 | 18 秒 | 60% |
Flask 应用工厂深度解析
基础工厂实现
def create_app(config_name='default'):
"""应用工厂函数"""
app = Flask(__name__)
# 1. 加载配置
app.config.from_object(config[config_name])
# 2. 初始化扩展
db.init_app(app)
login_manager.init_app(app)
# 3. 注册蓝图
from .auth import auth_bp
app.register_blueprint(auth_bp)
return app
配置管理
class Config:
"""基础配置"""
SECRET_KEY = os.environ.get('SECRET_KEY')
SQLALCHEMY_TRACK_MODIFICATIONS = False
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'postgresql://localhost/dev_db'
():
DEBUG =
SQLALCHEMY_DATABASE_URI = os.environ.get()


