我如何 POST 布尔数据到 Flask 路由

How do I POST boolean data to Flask route

我想将一个名为 manual 的变量传递给 Flask 路由,然后它将根据 POST 表单数据中的值执行某些操作。但是表单数据在烧瓶中被解释为string,即使我以字典的形式发送它。

这是代码

@app.route("/result", methods= [ 'POST', 'GET'])
def result():
    manual = request.form.get("manual")
    if manual is None:
            return "manual is required"

这是我发送数据的方式

r = requests.get('http://127.0.0.1:5000/result'
                 ,data={manual':False})

我知道我可以做类似的事情;

if manual == 'True'

但我不想比较字符串,我想以标准方式进行比较。

谢谢

首先,执行 POST 请求,而不是 GET:

r = requests.post('http://127.0.0.1:5000/result', json={'manual': False})

然后(未经测试):

@app.route("/result", methods=['POST'])
def result():
    json_data = flask.request.json
    manual = json_data.get("manual")
    if manual is None:
            return "manual is required"

查看文档了解详情:More complicated POST requests

请注意,使用数据参数和 json 参数之间存在差异。需要注意的重要一点是 Content-Type header:

的存在

Using the json parameter in the request will change the Content-Type in the header to application/json.