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

Flask应用运行失败:ImportError循环导入问题及代码修复求助

修复Flask应用的循环导入错误及代码问题

我来帮你一步步解决这个问题,你的错误主要来自两个方面:文件名冲突导致的循环导入,还有代码里的几处拼写/语法错误。

1. 解决循环导入的核心问题

你把自己的Python文件命名成了flask.py,这直接和Flask官方库的模块名重名了!当你执行from flask import Flask时,Python会优先加载当前目录下的flask.py,而不是你安装在系统里的Flask库,这就造成了循环导入的错误。

修复方法:立刻把你的文件名改成别的,比如my_flask_app.py,绝对不能叫flask.py。

2. 修复代码里的语法/拼写错误

你的代码里还有几处小错误,我一一列出来并修正:

  • 缺少必要的导入:redirect和url_for需要从flask模块导入,不然会报错
  • 判断条件写错:你用了user == 'student',但变量名应该是name(函数参数是name)
  • 魔术变量拼写错误:_name_应该是__name__,_maiin_应该是__main__(左右各两个下划线)
  • Python布尔值是大写的:debug=true要改成debug=True

修复后的完整代码

from flask import Flask, redirect, url_for  # 新增redirect和url_for的导入
app = Flask(__name__)

@app.route('/admin')
def admin():
    return "the current user is admin"

@app.route('/student')
def student():
    return "the current user is student"

@app.route('/teacher')
def teacher():
    return "the current user is teacher"

@app.route('/user/<name>')
def user(name):
    if name == 'admin':
        return redirect(url_for('admin'))
    if name == 'student':  # 把user改成name
        return redirect(url_for('student'))
    if name == 'teacher':  # 把user改成name
        return redirect(url_for('teacher'))
    # 新增默认返回,防止输入不存在的用户名
    return f"User {name} not found!"

if __name__ == '__main__':  # 修正魔术变量的拼写
    app.run(debug=True)  # 把true改成True

运行步骤

  1. 把你的文件名改成my_flask_app.py(或者其他不叫flask的名字)
  2. 替换成上面的代码
  3. 在终端运行python my_flask_app.py
  4. 访问http://localhost:5000/user/admin、http://localhost:5000/user/student就能看到跳转效果了,输入其他名字会显示找不到用户的提示

内容的提问来源于stack exchange,提问作者Digvijay Phutane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:42:28