Flask项目重构后出现循环导入错误,请求技术协助
解决Flask循环导入问题
问题根源
代码存在循环导入链:
run.py导入blog模块的appblog/__init__.py先导入routes模块routes.py尝试导入blog模块的app,但此时app还未创建(__init__.py里先执行了导入routes的操作,后定义app),导致模块初始化不完整,触发报错。
修复步骤
修改 blog/__init__.py 的代码顺序,先创建Flask实例app,再导入路由模块:
from flask import Flask # 优先创建app实例 app = Flask(__name__) # 此时app已存在,再导入routes不会触发循环导入 from blog import routes
额外优化建议
- 规范导入路径:
routes.py中导入DataBase时使用相对导入,更符合Python包结构规范:from blog import app from .DataBase import DataBase # 改为相对导入 from flask import render_template - 数据库初始化:建议在单独脚本或
__init__.py中调用DataBase.init_db(),避免在路由模块中重复执行初始化逻辑。
验证修复
重新运行run.py,循环导入问题即可解决,Flask应用可正常启动。
内容的提问来源于stack exchange,提问作者mildof
相关产品推荐
相关产品推荐

