我希望能够将数据发送到我的 Flask 应用程序。我试过访问 request.data
但它是一个空字符串。您如何访问请求数据?
from flask import request
@app.route('/', methods=['GET', 'POST'])
def parse_request():
data = request.data # data is empty
# need posted data here
这个问题的答案让我问 在 Python Flask 中获取原始 POST 正文,而不考虑接下来的 Content-Type 标头,这是关于获取原始数据而不是解析数据。
原文由 ddinchev 发布,翻译遵循 CC BY-SA 4.0 许可协议
文档 描述了请求期间
request
对象(from flask import request
)上可用的属性。在最常见的情况下request.data
将是空的,因为它被用作后备:request.args
: URL 查询字符串中的键/值对request.form
: 正文中的键/值对,来自 HTML 帖子表单或非 JSON 编码的 JavaScript 请求request.files
:正文中的文件,Flask 与form
分开。 HTML 表单必须使用enctype=multipart/form-data
否则将无法上传文件。request.values
: 组合args
和form
, 更喜欢重叠args
request.json
:解析的 JSON 数据。请求必须具有application/json
内容类型,或者使用request.get_json(force=True)
忽略该内容类型。所有这些都是
MultiDict
实例(除了json
)。您可以使用以下方式访问值:request.form['name']
:如果您知道密钥存在,请使用索引request.form.get('name')
:使用get
如果密钥可能不存在request.form.getlist('name')
:如果密钥被多次发送并且您想要一个值列表,请使用getlist
。get
只返回第一个值。