当前位置: 首页 > news >正文

【后端】FastAPI的Pydantic 模型

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

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

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

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

👉 那这些数据怎么写?要哪些字段?什么类型?有没有格式限制?
Pydantic 模型就是用来定义这些数据格式的。


📥 举个例子:用户注册

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

{"username": "alice","password": "123456"
}

你需要验证:

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

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

👉 Pydantic 就是干这个活的

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

class UserCreate(BaseModel):username: strpassword: str

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


📤 举个例子:登录响应

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

{"access_token": "xxxxx","token_type": "bearer"
}

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

class Token(BaseModel):access_token: strtoken_type: str

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


🧩 Pydantic 模型 = 两件事:

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

🔄 总结一句话

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

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

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

http://www.dtcms.com/a/294364.html

相关文章:

  • Excel 将数据导入到SQLServer数据库
  • Java TCP 通信详解:从基础到实战,彻底掌握面向连接的网络编程
  • 通用表格识别技术的应用,深刻改变人们处理表格数据的方式
  • 如何最简单、通俗地理解Python的numpy库?
  • Ubuntu22.04.5 LTS安装与使用Docker
  • 【优选算法-多源 BFS】多源 BFS:解决多个起点的广度优先搜索
  • AI语境下创新教学模式应用示范与推广联盟成立| 南开大学携手和鲸,破解智能化时代教育难题
  • 只能在栈上创建对象
  • Linux网络-------1.socket编程基础---(UDP-socket)
  • 广州邮科万兆6光千兆48电工业级光纤交换机:三层功能如何重新定义网络智能化
  • Vue Scoped样式:当动态元素成为“无家可归“的孤儿
  • 2025年云南燃气经营企业从业人员考试题
  • Axios封装以及添加拦截器
  • UniApp X 网络请求避坑指南:从 JS 到 UTS 的 JSON 数据处理全解析
  • MCU驱动AD5231BRUZ_10K
  • GoLang学习笔记
  • Qt 菜单与工具栏设计:提升用户体验
  • stm32使用USB虚拟串口,因电脑缺少官方驱动而识别失败(全系列32单片机可用)
  • Git下载全攻略
  • 状压Dp和记忆化搜索
  • k8s怎么找deploy历史版本?
  • UDP通信是否需要使用bind,connect,send等函数
  • 如何高效合并音视频文件
  • iview+Tree 在数据中添加selected和expand属性默认展开后点不动问题
  • 【数据结构】——时间与空间复杂度深度解析
  • MATLAB近红外光谱分析:MATLAB编程+BP神经网络+SVM+随机森林+遗传算法+变量降维+卷积神经网络等
  • 云蝠智能 Voice Agent:重构企业语音交互,引领 AI 服务新范式
  • 《Spring Bean生命周期全景图解:从实例化到销毁》
  • 增强LLM最后隐藏层的意义与效果
  • 文本溢出时显示省略号,并在鼠标移入文本时显示 tooltip全内容