【一】自定义响应模型
【1】定义视图函数
from fastapi import APIRouter
from pydantic import BaseModel, EmailStr
from typing import Optional
app04 = APIRouter()
### 响应模型
# 定义基本类
class UserBase(BaseModel):
# 定义字段 username : 用户名 类型为 str : 字符串
username: str
# 定义字段 email : 邮箱 类型为 EmailStr : 自动校验邮箱
email: EmailStr
# 定义字段 mobile : 手机号 类型为 str : 字符串
mobile: str = "10086"
# 定义字段 full_name : 手机号 类型为 Optional[str] : 可选填参数 ,字符串类型
full_name: Optional[str] = None
# 定义用户登录类
class UserIn(UserBase):
# 登陆需要校验密码
# 定义字段 password : 密码 类型为 str : 字符串
password: str
# 定义用户响应信息类
class UserOut(UserBase):
# 返回信息 不需要将用户的密码作为响应数据返回
...
# 新建两个用户
users = {
"user01": {"username": "user01", "password": "123123", "email": "user01@example.com"},
"user02": {"username": "user02", "password": "123456", "email": "user02@example.com", "mobile": "110"}
}
# response_model : 默认响应数据模型
# response_model_exclude_unset : 只使用前端传过来的值,而不使用默认值(mobile: str = "10086" ---> 不使用10086 而是使用前端传入的数据/函数中赋值)
@app04.post('/response_model', response_model=UserOut, response_model_exclude_unset=True)
async def response_model(user: Use