Flask代码无错但/getuser路由返回404,是环境问题吗?
Flask /getuser 路由返回404错误排查
你遇到的问题是/setuser/<user>能正常访问,但/getuser返回404,从提供的代码来看,路由定义本身没有语法错误,大概率不是Python环境的问题,下面是几个常见的排查方向:
排查步骤
- 确认运行的是正确的代码文件:检查终端里的运行命令,比如是否执行的是你当前编辑的
quick_session.py,有没有可能误运行了其他同名文件?可以通过文件绝对路径运行来验证,比如python /path/to/your/quick_session.py。 - 查看已注册的路由列表:Flask提供了查看所有注册路由的方式,在终端执行以下命令(Windows系统把
export换成set):
如果输出里没有export FLASK_APP=quick_session.py flask routes/getuser这条路由,说明函数没有被正确注册,需要检查代码缩进(确保@app.route('/getuser')和def getuser()的缩进层级正确,没有被错误嵌套)。 - 手动重启Flask服务:虽然开启了debug模式的自动重载,但偶尔会出现重载失效的情况,手动停止服务(Ctrl+C)后重新启动试试。
- 排除浏览器缓存影响:用无痕模式打开浏览器访问
http://localhost:5000/getuser,避免旧的缓存路径干扰。
另外,补充一个小提示:当前getuser函数在session['user']不存在时会抛出KeyError,可以修改代码增加容错处理,比如:
@app.route('/getuser') def getuser() -> str: return 'User value is currently set to: ' + session.get('user', '未设置')
内容的提问来源于stack exchange,提问作者SamWatt
相关产品推荐
相关产品推荐

