Flask 中,request 对象用于处理 HTTP 请求。其中,有几个不同的属性可以用来获取请求参数,例如 argsformdatajson。让我们来详细了解一下这些属性之间的区别和使用场景:

  1. request.args.get('key')
  • 用于获取 URL 中的查询参数(也称为查询字符串)。
  • 示例:如果请求路径是 /hello?name=zs,那么 args 解析出来的数据类似于一个字典:{'name': 'zs'}
  • 适用于获取 URL 中的参数。
  1. request.form.get('key')
  • 用于获取表单数据。
  • 仅当请求头的 content-typeapplication/x-www-form-urlencodedmultipart/form-data 时,请求体的数据会被解析为 form 属性。
  • 适用于处理表单提交的数据。
  1. request.data
  • 包含请求体的原始数据(字节字符串)。
  • 通常在处理非表单数据(如自定义格式的数据)时使用。
  1. request.json.get('key')
  • 用于获取 JSON 数据。
  • 仅当请求头的 content-typeapplication/json 时,请求体的数据会被解析为 JSON 格式。
  • 适用于处理 JSON 格式的数据。

总结:

  • args 用于获取 URL 查询参数。
  • form 用于获取表单数据。
  • data 获取原始请求体数据。
  • json 用于处理 JSON 数据。

请根据具体的请求类型和数据格式选择适当的属性来获取参数。¹²

源: 与必应的对话, 2024/4/19

(1) 理解 flask中request中form、data、json、values属性的区别 - 知乎. https://zhuanlan.zhihu.com/p/551703472.

(2) Flask中处理HTTP请求和响应,以及如何使用requests库发送请求. https://blog.csdn.net/aobulaien001/article/details/135241655.

(3) Flask 中 request.get_data() 和 request.get_json() - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/436378878.

(4) Flask Flask request.args.get 获取所有参数(Python) - 极客教程. https://geek-docs.com/flask/flask-questions/268_flask_flask_requestargsget_get_all_params_python.html.

(5) Flask:request.form、request.form.get(“xxxxxx”)和request.args.get(“xxxxx .... https://deepinout.com/flask/flask-questions/178_flask_flask_differences_between_requestform_requestformgetxxxxxx_and_requestargsgetxxxxx.html.