2020-04-15 | 后端 中文
Flask 应用工厂:把初始化从模块副作用中移开
bibi45
使用 create_app 让测试、配置切换和扩展初始化更清楚。
应用工厂在调用时创建 Flask 实例,而不是在模块导入时立即连接数据库或读取生产配置。
def create_app(config):
app = Flask(__name__)
app.config.from_mapping(config)
db.init_app(app)
app.register_blueprint(api_bp, url_prefix="/api")
return app
这样测试可以传入独立配置,开发和生产环境也不会靠散落的条件分支切换。扩展通常先创建对象、再通过 init_app 绑定应用。