在 Flask 中,request
对象用于处理 HTTP 请求。其中,有几个不同的属性可以用来获取请求参数,例如 args
、form
、data
和 json
。让我们来详细了解一下这些属性之间的区别和使用场景:
request.args.get('key')
:
- 用于获取 URL 中的查询参数(也称为查询字符串)。
- 示例:如果请求路径是
/hello?name=zs
,那么args
解析出来的数据类似于一个字典:{'name': 'zs'}
。 - 适用于获取 URL 中的参数。
request.form.get('key')
:
- 用于获取表单数据。
- 仅当请求头的
content-type
是application/x-www-form-urlencoded
或multipart/form-data
时,请求体的数据会被解析为form
属性。 - 适用于处理表单提交的数据。
request.data
:
- 包含请求体的原始数据(字节字符串)。
- 通常在处理非表单数据(如自定义格式的数据)时使用。
request.json.get('key')
:
- 用于获取 JSON 数据。
- 仅当请求头的
content-type
是application/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.