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
运行步骤
- 把你的文件名改成
my_flask_app.py(或者其他不叫flask的名字) - 替换成上面的代码
- 在终端运行
python my_flask_app.py - 访问
http://localhost:5000/user/admin、http://localhost:5000/user/student就能看到跳转效果了,输入其他名字会显示找不到用户的提示
内容的提问来源于stack exchange,提问作者Digvijay Phutane
相关产品推荐
相关产品推荐

