(二十五)独立练习与后续衔接
- 自拟:增加当前用户的阅读统计。 返回总数、已读数和未读数,用六本书手算后再核对 API;让 bob 请求相同路径,确认没有读到 alice 的统计。
- 自拟:比较两种筛选组合。 给书名添加相同关键词,在分页前后分别观察结果,解释总数查询和数据查询应该共用哪些条件。
- 自拟:扩展部分更新。 增加阅读备注,区分未提交、清空文本与 null,先列输入和预期状态,再补模型、映射、迁移和测试。
- 自拟:检查两份登录。 同一账号登录两次,退出其中一份后分别请求
me;从令牌表解释两次结果。 - 自拟:给错误增加定位编号。 在响应头和错误模型中加入一次请求的编号,让日志使用相同编号;更新
responses与测试,再核对文档示例和实际响应。 - 自拟:扩展导出恢复。 让服务重启后能列出
queued任务,设计一次重新执行动作,比较恢复前后的状态,并检查其他用户无法领取它。 - 自拟:新增数据库失败用例。 让修改已经发出 SQL 后抛出异常,再从新会话读取原值,说明
flush和提交之间发生了什么。 - 自拟:连接独立前端。 用上一章学过的 CORS 配置允许一个明确来源,前端主动添加 Bearer 头,观察 OPTIONS、真实请求和另一个来源的读取结果。
这一章把相同书架需求组合为模型、路由、依赖和事务。下一章用 Flask 继续实现带页面的书架,比较页面渲染、表单跳转与 JSON API 怎样连接相同的数据和权限规则。
本章习题解答与推导 按题号整理实现、过程说明与运行检查,可在完成练习后逐项对照。