在Web应用程序中,请求体(request body)是一种常见的数据来源,用于向服务器发送数据。例如,在创建一个用户时,客户端通常会向服务器发送一个包含用户数据的请求体。由于请求体是来自客户端的数据,因此在接收和处理请求体时需要对数据进行验证,以确保数据符合预期。在FastAPI中,我们可以使用Pydantic模块来验证请求体数据。
安装和导入Pydantic
在使用Pydantic之前,我们需要先安装它。我们可以使用pip来安装Pydantic:
代码语言:javascript复制pip install pydantic
安装完成后,我们需要在FastAPI应用程序中导入Pydantic模块:
代码语言:javascript复制from fastapi import FastAPI
from pydantic import BaseModel
定义请求体模型
在FastAPI中,我们可以通过继承Pydantic的BaseModel来定义请求体模型。请求体模型包含了我们需要验证的请求体数据。下面是一个示例:
代码语言:javascript复制class User(BaseModel):
name: str
email: str
age: int
在上面的示例中,我们定义了一个名为User的请求体模型,它包含了三个字段:name、email和age。每个字段都具有一个类型注释,用于指定该字段的数据类型。在这个示例中,name和email都是字符串类型,age是整数类型。
在路由中使用请求体模型
定义好请求体模型后,我们可以在路由中使用它来验证请求体数据。在FastAPI中,我们可以使用@router.post装饰器来处理POST请求,并使用请求体模型作为参数来验证请求体数据。下面是一个示例:
代码语言:javascript复制from fastapi import APIRouter
router = APIRouter()
@router.post("/users/")
async def create_user(user: User):
return {"user": user}
在上面的示例中,我们定义了一个名为create_user的视图函数,用于处理POST请求。该函数的参数user是我们之前定义的User请求体模型。当客户端向服务器发送POST请求时,FastAPI会自动使用User模型对请求体数据进行验证。如果请求体数据不符合User模型的定义,则FastAPI会返回一个400 Bad Request响应,表示请求体数据无效。如果请求体数据符合User模型的定义,则FastAPI会将请求体数据转换为User对象,并将其传递给create_user函数。在这个示例中,我们将User对象返回给客户端。