栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Flask中访问传入的POST数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Flask中访问传入的POST数据

你无意间发送了错误的Content Type。

默认情况下,

curl
的-d标志将发送
content-type
的POST数据
application/x-www-form-urlenpred
。由于你没有以期望的格式(key = value)发送数据,因此它将完全删除数据。对于JSON数据,你需要发送内容类型设置为
application/json
如下的HTTP请求:

curl -XPOST -H "Content-Type: application/json" 'http://127.0.0.1:5000/?thing1=1' -d '{"thing2":2}'

另外,flask的

request.form
字段仅包含POST表单数据,而不包含其他内容类型。你可以使用
request.data
或更方便地使用解析的JSON数据访问原始POST请求主体
request.get_json

下面是示例的固定版本:

from flask import Flask, requestimport jsonapp = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def refresh():    params = {        'thing1': request.values.get('thing1'),        'thing2': request.get_json().get('thing2')    }    return json.dumps(params)app.run()

更新:我之前打错了

request.body
实际上应该是
request.data
。事实证明
request.json
它已被弃用,
request.get_json
现在应改为使用。原始帖子已更新。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号