12-02 对照两种输入
题目
分别用表单和 JSON 保存同样的书,解释字段在解析后是什么类型,再让两个账号分别保存同名书,核对唯一约束的含义。
推导与做法
表单中的值最初是字符串,form_book 把 0、1 转成布尔值;JSON 解析后直接得到 bool,还要检查它确实是布尔类型。
唯一约束是 (user_id,title),因此 Alice 重复保存同名书会冲突,Bob 保存相同标题却可以成功。演示分别显示表单、JSON 和另一账号的状态,再查看返回值的 finished 类型。
实现与运行
查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。
在配套目录的 Web应用共同基础/web_project 中运行。先按项目 README 执行 uv sync --locked。
# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch12.py" 12-02
程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。
查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
"form": 303,
"json": 201,
"other_owner_same_title": 201,
"decoded_boolean_type": "bool"
}