FastAPI 的路由是如何工作的,如果要为不同的路径创建不同的功能应该怎么做?
时间: 2024-09-09 17:02:51 浏览: 70
fastapi-crudrouter:动态的FastAPI路由器,可以自动为模型创建CRUD路由
FastAPI 的路由系统是通过装饰器来实现的,它允许你将特定的函数与特定的 URL 路径关联起来。当你定义一个 FastAPI 应用时,你可以使用装饰器如 `@app.get()`, `@app.post()`, `@app.put()`, `@app.delete()` 等来声明不同的 HTTP 方法。每个装饰器接受一个路径参数(path parameter),它表示与该函数关联的 URL 路径。
要为不同的路径创建不同的功能,你只需定义不同的函数,并用对应的 HTTP 方法装饰器装饰它们。当一个请求到达时,FastAPI 会自动根据请求的 URL 路径和 HTTP 方法来调用相应的函数。每个函数通常会接收路径参数和查询参数作为参数,并返回一个响应对象。
下面是一个简单的例子,展示了如何为不同的路径创建不同的功能:
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
```
在这个例子中,`read_root` 函数将处理根路径 `/` 的 GET 请求,返回一个简单的 JSON 响应。而 `read_item` 函数会处理路径 `/items/{item_id}` 的 GET 请求,并接受一个路径参数 `item_id` 和一个可选的查询参数 `q`。
阅读全文