推荐答案
在 Flask 中,可以通过 request
对象来获取请求参数。以下是几种常见的获取请求参数的方式:
GET 请求参数:
- 使用
request.args.get('key')
获取 URL 查询字符串中的参数。 - 例如:
username = request.args.get('username')
- 使用
POST 请求参数:
- 使用
request.form.get('key')
获取表单提交的数据。 - 例如:
password = request.form.get('password')
- 使用
JSON 数据:
- 使用
request.get_json()
获取 JSON 格式的请求体数据。 - 例如:
data = request.get_json()
- 使用
文件上传:
- 使用
request.files.get('key')
获取上传的文件。 - 例如:
file = request.files.get('file')
- 使用
请求头:
- 使用
request.headers.get('key')
获取请求头中的信息。 - 例如:
user_agent = request.headers.get('User-Agent')
- 使用
本题详细解读
1. GET 请求参数
GET 请求的参数通常附加在 URL 的查询字符串中,例如 http://example.com?username=john&age=25
。在 Flask 中,可以通过 request.args
来获取这些参数。request.args
是一个 ImmutableMultiDict
对象,类似于字典,可以通过 get
方法来获取指定键的值。
from flask import request @app.route('/user') def user(): username = request.args.get('username') age = request.args.get('age') return f'Username: {username}, Age: {age}'
2. POST 请求参数
POST 请求的参数通常是通过表单提交的,数据会放在请求体中。在 Flask 中,可以通过 request.form
来获取这些参数。request.form
也是一个 ImmutableMultiDict
对象。
from flask import request @app.route('/login', methods=['POST']) def login(): username = request.form.get('username') password = request.form.get('password') return f'Username: {username}, Password: {password}'
3. JSON 数据
如果客户端发送的是 JSON 格式的数据,可以通过 request.get_json()
方法来获取。这个方法会解析请求体中的 JSON 数据并返回一个 Python 字典。
from flask import request @app.route('/data', methods=['POST']) def data(): data = request.get_json() return f'Received data: {data}'
4. 文件上传
如果客户端上传了文件,可以通过 request.files
来获取文件对象。request.files
也是一个 ImmutableMultiDict
对象,可以通过 get
方法来获取文件。
-- -------------------- ---- ------- ---- ----- ------ ------- --------------------- ----------------- --- --------- ---- - ------------------------- -- ----- ------------------------------- ------ ----- -------- ------------- ------ --- ---- ---------
5. 请求头
请求头中的信息可以通过 request.headers
来获取。request.headers
是一个 EnvironHeaders
对象,可以通过 get
方法来获取指定头部的值。
from flask import request @app.route('/headers') def headers(): user_agent = request.headers.get('User-Agent') return f'User-Agent: {user_agent}'
通过以上几种方式,可以灵活地获取 Flask 请求中的各种参数和数据。