提问者:小点点

获取在烧瓶请求中接收到的数据


我想要能够得到数据发送到我的烧瓶应用程序。我尝试访问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中询问Get raw POST body next Content-Type header,这是关于获取原始数据而不是解析数据的。


共2个答案

匿名用户

文档描述了请求中可用的属性。在大多数情况下,request.data将为空,因为它用作后退:

request.data将传入的请求数据作为字符串包含,以防mimetype Flask无法处理。

  • request.args:URL查询字符串中的键/值对
  • request.form:正文中的键/值对,来自HTML post表单或未经过JSON编码的JavaScript请求
  • request.files:主体中的文件,Flask将其与form分开。HTML表单必须使用enctype=multipart/form-data,否则将不会上载文件。
  • request.values:组合的参数表单,如果键重叠,则首选参数
  • request.JSON:解析的JSON数据。请求必须具有application/json内容类型,或者使用request.get_json(force=true)忽略该内容类型。

所有这些都是multidict实例(json除外)。可以使用以下方法访问值:

  • request.form['name']:如果知道密钥存在,请使用索引
  • request.form.get('name'):如果密钥可能不存在,请使用get
  • request.form.getList('name'):如果密钥被多次发送,并且您需要一个值列表,请使用getListget仅返回第一个值。

匿名用户

若要获取原始数据,请使用request.data。这只在它不能被解析为表单数据的情况下才起作用,否则它将为空,request.form将具有已解析的数据。

from flask import request
request.data