python - 获取 Flask 请求中收到的数据

标签 python flask werkzeug

我希望能够将数据发送到我的 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 : 结合 argsform,如果键重叠则首选 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 被多次发送并且您想要一个值列表,请使用 getlistget 只返回第一个值。

关于python - 获取 Flask 请求中收到的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434599/

相关文章:

python - 全新安装时导入 ssl 错误 : 'PROTOCOL_TLS' is not defined

python - git reset --hard HEAD 与 git checkout <file>

python - django 从列表创建表单

python - 没有 ORM 的 Werkzeug

python - Flask:app.debug 产生回溯

python - Flask - 如何使用 RotatingFileHandler 将 werkzeug 日志写入日志文件?

python - 我无法将我在 Seaborn 中的线图的 xticks 设置为相应小时的值

python - Google AppEngine PYTHON 灵活环境是否支持任务队列?

javascript - 使用javascript将python/flask变量注入(inject)HTML表格单元格

python - 如何删除 mod_python?