Python 现代开发学习笔记

(五)用响应模型规定交回字段

数据库里的书籍需要 owner_id,用户记录需要 password_hash。客户端查看书籍时,得到编号、书名、已读状态和标签即可。输入与输出因此分别定义为 BookCreate 和 BookOut。

上面的 BookOut 设置了 from_attributes=True。后面 BookOut.model_validate(book) 可以从 ORM 对象的 book.id、book.title 等属性读取数据。BookPage 再把多本书放进 items,同时返回总数与分页位置。

在路由上写 response_model=BookOut,FastAPI 会校验返回值并组织输出。返回用户对象而响应模型为 UserOut 时,只有模型声明的字段进入 JSON。响应结果没有符合模型,说明服务内部产生了错误,应修正服务代码;它与客户端输错字段的 422 是两条不同的排查路径。

从含有归属和密码摘要的内部对象选择公开模型字段,校验输出后生成 JSON,避免把整个内部字典直接交回

响应模型同时进入 OpenAPI 描述,接口页面据此展示字段和示例。它不会替代记录归属判断:决定用户能取得哪本书,仍要在查询与业务函数中完成。相关行为可对照 FastAPI 响应模型。

笔记正文与全部题解 · Ctrl / ⌘ K