Flask中create_app()函数无法生效及导入app报错问题求助
正确启用Flask create_app()的方法
问题根源
你当前的代码里,run.py直接导入了gg模块里的app实例,但从未调用create_app()函数,所以控制台只打印hello1;修改后的代码出现导入错误,本质是没遵循Flask应用工厂模式的正确调用逻辑。
修正步骤
1. 调整__init__.py(标准应用工厂写法)
不要提前创建app实例,把实例创建逻辑封装到create_app()内部:
from flask import Flask def create_app(): print("hello2") app = Flask(__name__) # 可在此添加配置、注册蓝图等业务逻辑 return app
如果需要保留全局app引用(不推荐,但兼容原有习惯),也可以这样写:
from flask import Flask app = None print("hello1") def create_app(): global app print("hello2") app = Flask(__name__) return app
2. 修改run.py,调用create_app()获取实例
原来的run.py直接导入未初始化的app,现在需要主动调用工厂函数生成实例:
from gg import create_app app = create_app() # 执行此代码才会触发create_app()内部逻辑 if __name__ == '__main__': app.run(host='x.x.x.x', port='XXXX', debug=True)
验证效果
运行run.py后,控制台会依次打印hello1(模块导入时执行)和hello2(create_app调用时执行),同时正常启动Flask服务。
内容的提问来源于stack exchange,提问作者임지웅
相关产品推荐
相关产品推荐

