我希望能够将数据发送到我的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以字符串形式包含传入的请求数据,以防mimetype Flask无法处理.

  • request.args:URL查询字符串中的键/值对
  • post/JavaScript-pairs不是一个键对形式的请求,不是一个键对形式的JSON/HTML
  • request.files:身体中的文件,Flask 与form分开.HTML表单必须使用enctype=multipart/form-data,否则将无法上传文件.
  • request.values:组合argsform,如果键重叠,则首选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只返回第一个值.

Python相关问答推荐

Django:如何将一个模型的唯一实例创建为另一个模型中的字段

Python-Polars:如何用两个值的平均值填充NA?

如何输入提示抽象方法属性并让mypy高兴?

只需使用Python在图像中保留 colored颜色 范围区域

如何使用关键参数按列对Pandas rame进行排序

Pandas 群内滚动总和

如何从格式为note:{neighbor:weight}的字典中构建networkx图?

在两极中实施频率编码

Numpy索引argsorted使用integer数组,同时保留排序顺序

请从Python访问kivy子部件的功能需要帮助

ambda将时间戳与组内另一列的所有时间戳进行比较

如何通过多2多字段过滤查询集

对Numpy函数进行载体化

根据条件将新值添加到下面的行或下面新创建的行中

比较两个数据帧并并排附加结果(获取性能警告)

点到面的Y距离

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

Telethon加入私有频道

Django—cte给出:QuerySet对象没有属性with_cte''''

Polars将相同的自定义函数应用于组中的多个列,