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

2024-04-24 16:07:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把数据发送到我的烧瓶应用程序。我试过访问request.data,但它是一个空字符串。如何访问请求数据?

@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下一个问题,就是获取原始数据,而不是解析数据。


Tags: 数据字符串app应用程序dataget烧瓶parse
3条回答

对于URL查询参数,请使用request.args

search = request.args.get("search")
page = request.args.get("page")

对于已发布的表单输入,请使用request.form

email = request.form.get('email')
password = request.form.get('password')

对于使用内容类型application/json发布的JSON,请使用^{}

data = request.get_json()

要获取原始数据,请使用^{}。只有当它不能被解析为表单数据时,这才有效,否则它将是空的,request.form将拥有解析的数据。

from flask import request
request.data

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

request.data Contains the incoming request data as string in case it came with a mimetype Flask does not handle.

  • ^{}:URL查询字符串中的键/值对
  • ^{}:正文中的键/值对,来自HTML post表单,或者不是JSON编码的JavaScript请求
  • ^{}:主体中的文件,容器与form分开。HTML表单必须使用enctype=multipart/form-data,否则将不会上载文件。
  • ^{}:组合的argsform,如果键重叠,则首选args
  • ^{}:解析的JSON数据。请求必须具有application/json内容类型,或者使用^{}忽略该内容类型。

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

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

相关问题 更多 >