我如何 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.
我想将一个名为 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.