Flask应用工厂函数
什么是应用工厂函数
应用工厂函数是Flask中一种重要的设计模式,它允许你创建一个函数来构建和配置Flask应用实例。这种模式提供了更好的代码组织、配置管理和测试支持。
为什么使用工厂函数
传统方式的局限性
# 传统方式 - 直接创建app
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
# 注册蓝图
from myapp.views import main
app.register_blueprint(main)
# 初始化扩展
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
if __name__ == '__main__':
app.run()
问题:
- 应用对象在模块级别创建,难以配置不同环境
- 扩展在导入时初始化,可能导致循环导入
- 测试时需要创建新的应用实例