Flask框架模型部署,运行后访问http://127.0.0.1:8000/api/testpost,报错Method Not Allowed
The method is not allowed for the requested URL.
import joblib
from gevent import pywsgi
from flask import Flask, jsonify, request
import json
import requests
app = Flask(__name__)
@app. route('/')
def index():
return "Hello,world!"
getMSG={'travel':'0','game':'0','icecream':'0'}
@app. route('/api/testpost',methods=['POST'])
def testPost():
getMSG['travel']=request.json['travel']
getMSG['game']=request.json['game']
getMSG['icecream']=request.json['icecream']
return jsonify(getMSG)
if __name__=='__main__':
# server = pywsgi.WSGIServer(('0.0.0.0',5000),app)
# server.serve_forever()
app.run(host='0.0.0.0',port=8000)
参考gpt:
报错 "Method Not Allowed" 表示请求的方法在指定的 URL 上不被允许。根据你提供的代码,问题可能出在以下几个方面:
以下是一个使用 Flask-CORS 扩展的例子:
from flask import Flask, jsonify, request
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
# 路由和处理函数代码...
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000)
通过引入 Flask-CORS 扩展并调用 CORS(app),你可以在 Flask 应用中启用跨域请求。
尝试根据上述解决方案检查和修改你的代码,以解决 "Method Not Allowed" 错误。如果问题仍然存在,请提供更多关于请求的详细信息,例如请求的方式、请求头和请求内容,以便更好地排查问题。
这是因为在访问/api/testpost接口时,使用了不支持的HTTP请求方法。默认情况下,Flask只支持GET和POST方法,如果需要使用其他HTTP请求方法,需要在路由装饰器中指定。例如,如果要支持PUT方法,可以这样写:
@app.route('/api/testpost', methods=['POST', 'PUT'])
def testPost():
pass
在这个例子中,我们将路由装饰器中的methods参数设置为['POST', 'PUT'],表示该接口支持POST和PUT方法。这样,在访问该接口时,就可以使用POST或PUT方法了。