You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目重构后出现循环导入错误,请求技术协助

解决Flask循环导入问题

问题根源

代码存在循环导入链:

  1. run.py 导入 blog 模块的 app
  2. blog/__init__.py 先导入 routes 模块
  3. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:32:21