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

Flask-RESTful应用访问触发GET而非POST返回405错误该如何解决?

错误原因

你的Route资源类仅实现了post方法,仅支持POST类型的请求,而浏览器直接访问服务地址时默认发送GET请求,Flask-RESTful没有匹配到对应请求的处理逻辑,因此返回405 Method Not Allowed错误。

解决方案

你可以根据业务需求选择以下任意一种方案解决:

  • 方案1:添加GET请求处理逻辑
    如果需要支持浏览器直接访问,在Route类中补充实现get方法即可,修改后的代码参考如下:
from flask import Flask
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)


class Route(Resource):
    def post(self):
        return "Posted"
    # 新增GET请求处理方法
    def get(self):
        return "请求成功"


api.add_resource(Route, '/')

if __name__ == '__main__':
    app.run(debug=True)

修改后重启服务,再次用浏览器访问即可正常获取返回结果。

  • 方案2:使用POST方式调用接口
    如果接口设计上仅允许POST请求,无需支持GET,使用专门的调试工具发送POST请求即可,比如可以用curl工具执行如下命令:
    curl -X POST http://127.0.0.1:5000
    也可以使用Postman、Apifox等可视化接口调试工具,选择请求方法为POST后访问对应地址,即可拿到预期的"Posted"返回结果。

  • 方案3:自定义405错误返回(可选)
    如果需要统一处理站点内所有405错误的返回内容,可以添加全局错误处理器,示例代码如下:

@app.errorhandler(405)
def handle_405_error(e):
    return {"msg": "当前接口不支持该请求方法,请确认请求类型后重试"}, 405

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 16:27:04