第十四章:学习路线与练习题
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 实战教材。