fastapi接口获取参数
时间: 2024-09-04 15:02:14 浏览: 37
FastAPI是一个轻量级的Web框架,它基于Python的asyncio库构建,特别适合RESTful API开发。在FastAPI中,我们可以直接从请求中获取参数,无论是查询参数、路径参数还是请求体数据。以下是常见的几种获取参数的方式:
1. **查询参数**:在URL中通过`?`后面附加键值对的形式传递。例如,`/items?name=John&color=blue`,可以使用`request.query_params`字典来访问。
```python
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items")
def read_items(name: str = Query(...), color: str = Query(None)):
return {"name": name, "color": color}
```
2. **路径参数**:在路由路径中用冒号`:`代替参数名,如`/{item_id}`。可以使用`request.path_params`获取。
```python
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
```
3. **请求体参数**(POST、PUT等):对于需要发送JSON数据的HTTP方法,如`request.json()`获取的是一个字典,如果Content-Type设置为`application/x-www-form-urlencoded`,则使用`request.form`。
```python
@app.post("/items/")
async def create_item(data: dict = Depends()):
# data是一个接收到的json对象
return {"data": data}
```
4. **文件上传**:使用`File`类型可以从multipart/form-data请求中获取上传的文件。
```python
@app.post("/items/")
async def upload_file(file: bytes = File(...)):
# file是一个二进制文件
pass
```