【后端】FastAPI的Pydantic 模型

Pydantic是 FastAPI 用来"收"和"回"数据的格式说明书。

我们在写接口时,客户端会:

  • "传数据"给你(输入),比如注册/登录时提交用户名和密码。

  • "拿数据"回去(输出),比如你登录成功后返回 JWT 令牌。

👉 那这些数据怎么写?要哪些字段?什么类型?有没有格式限制?

Pydantic 模型就是用来定义这些数据格式的。


📥 举个例子:用户注册

你写了一个注册接口 /register,用户传来这个 JSON:

复制代码
{
  "username": "alice",
  "password": "123456"
}

你需要验证:

  • 有没有 username 字段?它是不是字符串?

  • password 有没有?是不是字符串?

👉 Pydantic 就是干这个活的

我们用 UserCreate 模型定义这个请求体结构:

复制代码
class UserCreate(BaseModel):
    username: str
    password: str

FastAPI 自动把用户提交的数据拿去套这个模型检查 。如果不符合(比如 password 是数字、username 没填),会直接返回错误,不会走到数据库或后续逻辑,保证你收到的就是干净合法的数据


📤 举个例子:登录响应

你登录成功了,要给客户端返回 JWT 令牌。你希望格式是这样的:

复制代码
{
  "access_token": "xxxxx",
  "token_type": "bearer"
}

我们用这个模型描述这个结构:

复制代码
class Token(BaseModel):
    access_token: str
    token_type: str

FastAPI 自动会把你写在返回值里的字典转成这个格式,客户端拿回的 JSON 就规范了。


🧩 Pydantic 模型 = 两件事:

模型名 干的事(请求) 干的事(响应)
UserCreate 验证用户提交的数据是否合法 不用于响应
Token 不用于请求 定义你返回给用户的令牌格式

🔄 总结一句话

你可以把 Pydantic 理解成"接口数据说明书"。

  • 当别人调用你的接口时,FastAPI 用它来帮你检查数据合法性 ✅

  • 当你返回数据给别人时,FastAPI 用它来帮你自动生成标准 JSON 📦

相关推荐
净水深流3 分钟前
中国冷链冷库行业数据分析:从规模扩张到技术驱动
大数据·数据库·人工智能·冷库冷链
回家路上绕了弯6 分钟前
AI 编程助手为什么反复读取同一份上下文?如何减少无效重复
后端
Lost of 程序猿8 分钟前
用 Quartz.NET 优雅地处理 .NET 定时任务:从选型到 Docker 部署全记录
后端·c#·asp.net
东莞市云毅网络有限公司15 分钟前
PDF 表格抽取的三条技术路线对比:规则、库解析与版面识别
python·sqlite·自动化运维·geo·数据监测
名字还没想好☜25 分钟前
Spring Boot 优雅停机实战:等在途请求处理完再退出,配合 K8s preStop 别丢请求
java·后端·spring
摇滚侠30 分钟前
《Spring Boot 3:高级与架构设计》第 1 章 Bean 与 BeanDefinition 个人理解 2
java·spring boot·笔记·后端
李兆龙的博客36 分钟前
从一到无穷大 #94:ClickHouse TimeSeries——时间线组织与 Prometheus 兼容性
数据库
冰暮流星37 分钟前
事务的四个特性(ACID)详解
数据库
IT_陈寒1 小时前
Redis主从切换竟让业务卡了3秒?这个坑我替你踩了
前端·人工智能·后端
byte轻骑兵1 小时前
时序数据库选型全指南|大数据工业场景Apache IoTDB落地实操
大数据·数据库·人工智能·apache iotdb