如何将布尔数据发布到 Flask 路由
Posted
技术标签:
【中文标题】如何将布尔数据发布到 Flask 路由【英文标题】:How do I POST boolean data to Flask route 【发布时间】:2022-01-22 03:55:07 【问题描述】:我想将一个名为 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'
但我不想比较字符串,我想以标准方式进行比较。
谢谢
【问题讨论】:
你还在发布你的数据吗?它看起来像一个 get 请求,在这种情况下,变量在 URL 中传递,默认情况下将是一个字符串 我也想看看返回的响应,所以我使用requests.get()
【参考方案1】:
首先,发出 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。
注意使用data参数和json参数是有区别的。需要注意的重要一点是 Content-Type 标头的存在:
在请求中使用json参数会改变Content-Type 在 application/json 的标头中。
【讨论】:
以上是关于如何将布尔数据发布到 Flask 路由的主要内容,如果未能解决你的问题,请参考以下文章
Flask URL Route:将所有其他 URL 路由到某个函数
如何在不上传 favicon 文件的情况下将 favicon 添加到 Google colab 上的 Flask 路由?