FastAPI 后端获取前端传递参数
时间: 2024-11-07 21:11:12 浏览: 15
fastApiMMLFramework:使用postgres db在后端和前端之间传递信息的后端CRUD框架
FastAPI是一个用于构建现代Web API的高性能Python框架。在FastAPI中,从前端获取参数通常通过HTTP请求完成,前端可以发送GET、POST等请求,并将数据作为查询参数、请求体或URL路径参数传给服务器。以下是获取不同类型参数的一些示例:
1. **查询参数** (GET 请求):
前端可以通过URL添加键值对的形式传递参数,如`/items?color=red&size=medium`。在FastAPI中,可以在路由定义中通过` Depends(request.query_params)`来接收这些参数:
```python
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
def get_items(color: str = Query(None), size: str = Query(None)):
# 这里 color 和 size 就是从查询参数中获取的
```
2. **请求体参数** (POST, PUT 或 PATCH 请求):
对于表单数据或JSON数据,前端通常会将它们放在请求体中。可以使用`Depends(req_body = Body(...))`或`RequestBody(...)`装饰器来处理:
```python
from fastapi import FastAPI, Request
@app.post("/items/")
async def create_item(item_data: dict = Body(..., example={"name": "New Item"})):
item = await parse_item_data(item_data) # 自定义解析请求体
```
3. **路径参数** (例如,动态路由):
当需要在URL路径中直接使用参数时,可以直接在路由中定义:
```python
app = FastAPI()
@app.get("/{item_id}")
def read_item(item_id: int):
# item_id 会从 URL 中的 /{item_id} 部分获取到
```
每次接收到请求后,你可以通过`request`对象访问这些参数。
阅读全文