推荐答案
在 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 方法来获取文件。
// www.javascriptcn.com code example
from flask import request
@app.route('/upload', methods=['POST'])
def upload():
file = request.files.get('file')
if file:
file.save('/path/to/save/file')
return 'File uploaded successfully'
return 'No file uploaded'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 请求中的各种参数和数据。