FastAPI基础-路由和视图函数(二)

2023-05-07 20:48:36 浏览数 (1)

处理请求体

在处理POST、PUT和DELETE请求时,我们通常需要从请求体中获取数据。在FastAPI中,我们可以使用request.body属性来访问请求体中的数据。当我们使用pydantic模型来定义请求体的结构时,FastAPI会自动将请求体反序列化为该模型的实例。

代码语言:javascript复制
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字段的值。

代码语言:javascript复制
@app.get("/items/")
async def read_items(token: str):
    return {"token": token}

在上面的代码中,我们定义了一个路由/items/和一个视图函数read_items()。当收到GET请求时,FastAPI将提取请求头中的Authorization字段的值,并将其传递给视图函数read_items()作为参数。视图函数返回一个JSON响应,包含键值对{"token": token}

0 人点赞