Flask后端服务器返回404错误求助
Flask后端服务器返回404错误求助
嗨,我一眼就瞅出问题所在啦,咱们一步步来解决:
核心原因:访问的路径没有对应的路由处理
从你控制台的日志Request path: /能看出来,你直接访问了服务器的根路径http://127.0.0.1:8000/,但你的代码里完全没有定义处理GET /的路由——你只写了一个POST /execute-file/的接口,Flask找不到匹配的路由规则,自然就返回404了。
针对性解决方案
根据你的需求,有两种处理方式:
1. 先加个根路由用于测试服务器连通性
如果只是想确认服务器能正常响应,可以在代码里加一段根路径的处理代码:
@app.route('/') def home_page(): return "Flask服务器运行正常!请通过POST请求访问 /execute-file/ 接口来执行文件"
这样再访问根路径就能看到提示,不会404了。
2. 正确调用/execute-file/接口
如果你本来就想调用执行文件的接口,注意两个关键点:
- 这个接口只接受POST请求,不能直接用浏览器地址栏访问(浏览器默认发GET请求),得用POST请求工具(比如Postman、curl、Thunder Client)来发送请求
- 请求时必须带上
fileName参数,且路径要和路由一致(注意末尾的斜杠)
举个用curl调用的例子:
curl -X POST -F "fileName=test.py" http://127.0.0.1:8000/execute-file/
额外小提醒
- 你的
/execute-file/路由末尾带了斜杠,Flask默认是严格匹配的,所以请求时要么带上斜杠,要么把路由改成@app.route('/execute-file', methods=['POST'])(不带斜杠),这样带不带斜杠都能匹配 - 调试的时候可以开Flask的debug模式,方便实时重载和报错排查:
app.run(host='0.0.0.0', port=8000, debug=True)(生产环境绝对不能开!) - 后续还要确认
lib/execute/目录存在,且里面的文件有可执行权限,不然调用接口时会抛出文件找不到的错误
备注:内容来源于stack exchange,提问作者Ojasvi Singla
相关产品推荐
相关产品推荐

