处理请求体
在处理POST、PUT和DELETE请求时,我们通常需要从请求体中获取数据。在FastAPI中,我们可以使用request.body属性来访问请求体中的数据。当我们使用pydantic模型来定义请求体的结构时,FastAPI会自动将请求体反序列化为该模型的实例。
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
@app.post("/items/")
async def create_item(item: Item):
return item在上面的代码中,我们定义了一个Item模型,用于描述一个物品的属性。我们还定义了一个路由/items/和一个视图函数create_item()。当收到POST请求时,FastAPI将提取请求体中的JSON数据,并使用Item模型将其反序列化为一个实例。然后,FastAPI将该实例传递给视图函数create_item()作为参数。视图函数返回该实例作为JSON响应。
处理请求头
在FastAPI中,我们可以使用request.headers属性来访问请求头中的数据。例如,我们可以使用request.headers.get("Authorization")来获取请求头中的Authorization字段的值。
@app.get("/items/")
async def read_items(token: str):
return {"token": token}在上面的代码中,我们定义了一个路由/items/和一个视图函数read_items()。当收到GET请求时,FastAPI将提取请求头中的Authorization字段的值,并将其传递给视图函数read_items()作为参数。视图函数返回一个JSON响应,包含键值对{"token": token}。


