我希望能够将数据发送到我的 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
这个问题的答案让我问Get raw POST body in Python Flask regardless of Content-Type header接下来是获取原始数据而不是解析后的数据。
最佳答案
docs描述请求期间 request
对象(from flask import request
)上可用的属性。在最常见的情况下,request.data
将是空的,因为它被用作后备:
request.data
Contains the incoming request data as string in case it came with a mimetype Flask does not handle.
-
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']
:如果您知道 key 存在,请使用索引request.form.get('name')
:如果 key 可能不存在,请使用get
request.form.getlist('name')
:如果 key 被多次发送并且您想要一个值列表,请使用getlist
。get
只返回第一个值。
关于python - 获取 Flask 请求中收到的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434599/