后端flask怎么读参数呢
时间: 2024-10-12 15:13:02 浏览: 5
在 Flask 框架中,当你处理来自客户端的 HTTP 请求时,可以使用 Flask 提供的 `request` 对象来访问请求中的参数。下面是如何读取不同类型参数的基本方法:
1. **从 URL 参数** (Query Parameters):
- GET 请求通常包含在 URL 查询字符串中。使用 `request.args` 可获取这些参数,它是一个字典形式的对象。
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/example', methods=['GET'])
def read_get_params():
query_param = request.args.get('param_name')
if query_param:
return f"You searched for: {query_param}"
else:
return "No parameter found."
```
2. **从请求体 (Body)**:
- 对于 POST、PUT、PATCH 或 DELETE 这些需要提交数据的请求,参数通常在请求体里,可以通过 `request.form` 或 `request.json` 获取。
```python
@app.route('/example', methods=['POST'])
def read_post_params():
form_data = request.form
# 或者如果你期望的是JSON数据
json_data = request.get_json()
return f"Received data: {form_data['key'] or json_data['key']}"
```
注意,如果你指定了 Content-Type 为 `'application/x-www-form-urlencoded'`,应使用 `request.form`;如果为 `'application/json'`,则应使用 `request.get_json()`。
3. **文件上传** (Files):
- 使用 `request.files` 来处理上传的文件,例如:
```python
@app.route('/upload', methods=['POST'])
def handle_file_upload():
file = request.files['file']
if file:
filename = file.filename
# Save the file to a specific location...
else:
return "No file uploaded."
```
4. **路径变量 (Route Variables)**:
- 如果你想通过路由匹配变量参数,可以在路由定义中使用 `<variable>` 标记,然后在视图函数中通过 `request.view_args` 获取。
```python
@app.route('/users/<username>')
def read_username(username):
requested_user = request.view_args['username']
return f"Hello, {requested_user}!"
```