Python 现代开发学习笔记

06-05 增加删除操作

本章题解 · 全部练习

题目

删除书籍时同时删除关联日志和标签,先写真实 SQLite 检查,再实现 CLI,最后启动独立进程确认重新查询的结果。

推导与做法

先为一本书建立标签和阅读日志,再执行带 title 条件的 DELETE。连接已经开启 foreign_keys,两个关联表通过 ON DELETE CASCADE 清理。

事务提交并关闭 Library 后,重新连接检查三张表,记录数都为 0。接入 CLI 时新增 remove 子命令,调用同一删除函数;未知书名按已有错误路径返回非零退出码。

实现与运行

查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。

在配套目录的 调试与项目组织/quality_project 中运行。先按项目 README 执行 uv sync --locked。

# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch06.py" 06-05

程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。

查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
  "books": 0,
  "reading_log": 0,
  "book_tags": 0
}

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