如何解决 Flask/Heroku 错误:“Method Not Allowed 请求的 URL 不允许该方法”

Posted

技术标签:

【中文标题】如何解决 Flask/Heroku 错误:“Method Not Allowed 请求的 URL 不允许该方法”【英文标题】:How to solve Flask/Heroku Error: “Method Not Allowed The method is not allowed for the requested URL” 【发布时间】:2021-03-15 02:44:35 【问题描述】:

我正在使用烧瓶、heroku 和颤振,但是当我调用 url 时出现以下错误。这是我的 app.py 代码:

from flask import Flask, jsonify, request
import pandas as pd
import numpy as np
import joblib
import traceback
from flask_restful import reqparse
app = Flask(__name__)

"""@app.route("/", methods=['GET'])
def hello():
    return "hey"""

@app.route('/', methods=['POST'])
def predict():
    lr = joblib.load("model.pkl")
    if lr:
        try:
            json = request.get_json()    
            model_columns = joblib.load("model_cols.pkl")
            temp=list(json[0].values())
            vals=np.array(temp)
            prediction = lr.predict(temp)
            print("here:",prediction)        
            return jsonify('prediction': str(prediction[0]))

        except:        
            return jsonify('trace': traceback.format_exc())
    else:
        return ('No model here to use')
    


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

它已经在 Heroku 应用程序上。 heroku 的链接如下:https://myappflutterflask.herokuapp.com/

【问题讨论】:

您不允许在您的主页路由中使用GET 方法,因此您无法直接进入主页。 【参考方案1】:

看起来您在程序中公开了 POST 方法,但使用 GET(可能通过网络浏览器)访问它。

您可能需要使用不同的客户端对其进行测试:例如浏览器插件、Postman、curl。

【讨论】:

谢谢。我又做了一次,就是你提到的那件事。

以上是关于如何解决 Flask/Heroku 错误:“Method Not Allowed 请求的 URL 不允许该方法”的主要内容,如果未能解决你的问题,请参考以下文章

在 Flask+Heroku 上将 HTTP 重定向到 HTTPS

会话不可用,因为没有设置密钥。将应用程序上的 secret_key 设置为唯一且机密的东西。烧瓶/Heroku

SignTool Error: No certificates were found that met all the given criteria

Errors I have met

以二的幂表示数字[关闭]

Flask restful API如何解决跨站请求问题