Flask应用无法识别新增路由及代码修改不生效问题求助
Flask新增路由404且代码修改不生效的解决方法
问题根源分析
1. 新增路由返回404的原因
你的路由定义中使用了占位符格式的路径:@spacy_en_api.route("/[MY_CUSTOM_ROUTE]", methods=['POST']),但实际请求的是/MY_CUSTOM_ROUTE(无方括号),路径完全不匹配,导致Flask无法识别该路由。此外,新增的路由函数里未定义data变量,即使路径正确也会触发500错误。
2. 代码修改不生效的原因
- Flask默认开发服务器不会自动重载代码,修改代码后若未手动重启应用,进程仍在运行旧版本代码。
- 可能存在后台残留的Flask进程占用5000端口,新启动的应用未真正接管请求,导致修改无法生效。
具体解决步骤
1. 修复路由定义错误
修改routes_en.py中的新增路由,替换占位符为实际路由名,并补全变量定义:
@spacy_en_api.route("/my_custom_route", methods=['POST']) def my_custom_route(): data = {"output": "test - it works"} # 先初始化data字典 return jsonify(data)
2. 彻底重启Flask应用
- 用
Ctrl+C终止当前运行的Flask进程,再重新执行python main.py启动应用。 - 若怀疑端口被占用,清理残留进程:
- Linux/macOS:执行
lsof -i :5000找到进程PID,再用kill <PID>杀死进程。 - Windows:执行
netstat -ano | findstr :5000获取PID,再用taskkill /F /PID <PID>强制终止进程。
- Linux/macOS:执行
3. 开启debug模式自动重载(可选)
修改main.py中的启动代码,开启debug模式后,Flask会自动监测代码变化并重启服务器:
if __name__ == '__main__': app.run(debug=True)
内容的提问来源于stack exchange,提问作者sharp_blur
相关产品推荐
相关产品推荐

