Skip to content

第十四章:学习路线与练习题 ​

14.1 推荐学习顺序 ​

第一遍(会用):第 1、2、3、4 章 → 能定义模型、做基础校验
第二遍(用熟):第 5、6、7、8 章 → 自定义校验、嵌套、配置、序列化
第三遍(用好):第 9、10、11、12 章 → 高级类型、泛型、实战
回头看:第 13 章避坑清单,对照自己的代码检查

14.2 练习题(由易到难) ​

练习 1(基础):定义一个 Book 模型,包含 title(1~100 字符)、author、price(正数)、isbn(13 位数字)。用正确和错误的数据各测试一次,观察报错信息。

练习 2(验证器):定义 RegisterForm,包含 email、password、confirm_password。要求:密码至少 8 位且包含数字;两次密码一致;email 自动转小写。

练习 3(嵌套):建模一个"订单":订单包含多个商品项(商品名、单价、数量),订单有 computed_field 自动计算总价。

练习 4(实战):写一个脚本读取一个 JSON 文件(自己造一些脏数据:缺字段、价格带"¥"、日期格式不一),用 Pydantic 清洗后输出干净的 JSON,并把失败的行和原因打印出来。

练习 5(综合):用泛型实现 ApiResponse[T],并用它包装练习 3 的订单列表,最后输出 model_dump_json()。

14.3 学完自测清单 ​

  • [ ] 能解释 lax 模式和 strict 模式的区别
  • [ ] 能说出 field_validator 的 before / after 执行时机
  • [ ] 能写出判别联合(discriminated union)并说明为什么需要它
  • [ ] 知道 model_dump(exclude_unset=True) 的典型用途
  • [ ] 能用 Annotated 封装可复用的约束类型
  • [ ] 能用 pydantic-settings 管理项目配置
  • [ ] 能看懂 ValidationError.errors() 的结构并加工成友好提示

全部打勾,恭喜你,Pydantic 已经可以成为你工具箱里的常备武器了。


📚 延伸资源:官方文档 https://docs.pydantic.dev/(写得很好,遇到细节问题直接查);FastAPI 文档的数据校验章节也是很好的 Pydantic 实战教材。