【问题标题】:getting error in flask while running the app运行应用程序时烧瓶出错
【发布时间】:2021-12-22 21:11:44
【问题描述】:

我正在使用flask构建一个rest API,当我运行时我得到The method is not allowed for the requested URL.我不知道我在哪里做错了

@app.route('/predict', methods=["POST"])
def predict():
    solute = request.form.get("solute")
    solvent = request.form.get("solvent")
    results = predictions(solute, solvent)

    response = {}
    response["response"] = {
        'energy': str(results)
    }
    return flask.jsonify(response)



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

这里溶质和溶剂的取数据和结果都是json格式的浮点数

【问题讨论】:

  • 首先,确保<form .. >标签已经有method="POST"属性
  • 我将在 React 应用程序中使用它。所以这里没有任何 HTML 文件@cizario

标签: python flask flask-restful


【解决方案1】:

您能告诉我们您使用的是哪个烧瓶版本以及哪个 Python 解释器吗?我复制粘贴了你的 API,为烧瓶添加预测方法和库,它运行完美,没有此错误消息。

也许这个错误是由另一条路线触发的?你确定它来自这部分吗?

这是我用来触发此错误但没有任何反应的整个代码。

from flask import Flask, request
from flask.json import jsonify
 
app = Flask(__name__)

def predictions(solute, solvent):
    res = float(solute) + float(solvent)
    return res

@app.route('/predict', methods=["POST"])
def predict():

    solute = request.form.get('solute')
    solvent = request.form.get('solvent')
    result = predictions(solute, solvent)

    response = {}
    response["response"] = {
        'energy': str(result)
    }
    return jsonify(response)


if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=3000)

我正在使用 POSTMAN 发送 POST 请求,其中包含 Body 中的数据作为表单数据,请确保您发送正确的查询,可能错误来自这里。

使用溶质 = 2.3 和溶剂 = 11.5 返回查询

{
    "response": {
        "energy": "13.8"
    }
}

【讨论】:

    猜你喜欢
    • 2020-04-16
    • 1970-01-01
    • 2018-12-13
    • 2018-05-30
    • 2015-07-05
    • 1970-01-01
    • 2021-06-10
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多