feat(web基础): 新增零基础Web开发课程

This commit is contained in:
zhiye.sun
2026-08-20 16:14:29 +08:00
parent bf1f7042a9
commit 0c3d6402ea
19 changed files with 2005 additions and 8 deletions
@@ -0,0 +1,60 @@
# 第5-4课练习:JSON数据交换
#
# 本文件只提供题目、预期结果、自查清单和验收标准,不包含参考答案或代码骨架。
# 第一部分:创建并序列化Python对象
# 1. 创建一个图书字典,包含编号、书名、作者、价格、是否上架、标签和备注。
# 2. 值应覆盖字符串、数字、布尔值、列表和None。
# 3. 使用json.dumps()转换为JSON文本。
# 4. 要求中文直接显示,并使用两个空格缩进。
# 5. 输出转换后的JSON文本。
# 第二部分:反序列化请求体
# 1. 准备一段新增图书的合法JSON字符串。
# 2. 使用json.loads()转换为Python字典。
# 3. 分别输出书名、作者和价格。
# 4. 输出转换后对象的类型,确认它是dict而不是str。
# 第三部分:处理错误JSON
# 1. 依次测试属性名使用单引号、最后一项带逗号、缺少右花括号三种错误。
# 2. 捕获json.JSONDecodeError。
# 3. 为使用者输出简洁中文提示,不直接把程序终止在英文堆栈处。
# 4. 在注释中记录每段JSON为什么无效。
# 第四部分:观察HTTP中的JSON
# 1. 用多行字符串写出一份POST /books请求报文。
# 2. 请求头必须包含Content-Type: application/json; charset=utf-8。
# 3. 请求体包含title与price。
# 4. 再写出一份状态码为201的JSON响应报文。
# 5. 在注释中标出请求体、响应体与Content-Type分别位于哪里。
# 预期关键输出:
# 1. 序列化结果中的中文可以直接阅读;
# 2. JSON中的true、false和null使用小写;
# 3. 反序列化后的对象类型为dict;
# 4. 合法请求能够输出书名、作者和价格;
# 5. 三段无效JSON都得到中文错误提示。
# 自查清单:
# 1. 是否导入Python标准库json?
# 2. 是否使用json.dumps()而不是str(dict)?
# 3. JSON文本中的属性名和字符串是否使用双引号?
# 4. 是否理解True与true、None与null的区别?
# 5. 是否捕获了json.JSONDecodeError?
# 6. 是否没有直接序列化Decimal、datetime或自定义对象?
# 7. HTTP请求与响应是否正确声明Content-Type?
# 最终验收标准:
# 1. practice.py通过语法检查并可独立运行;
# 2. Python对象能够转换为格式化中文JSON;
# 3. 合法JSON能够转换为Python字典;
# 4. 三类格式错误都能安全处理;
# 5. 能解释Python对象、JSON文本和网络字节的区别;
# 6. 能指出HTTP报文中的JSON正文和Content-Type。