路径里带参数
贯穿全条的应用(留言板): handle(method, url, body, notes) → (状态码, 头, 正文) / GET 200 首页:留言列表 + 发表表单 /about GE
方法不对该回什么
贯穿全条的应用(留言板): handle(method, url, body, notes) → (状态码, 头, 正文) / GET 200 首页:留言列表 + 发表表单 /about GE
同一个应用,几种路径各回什么
(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha
补全:路由表
不用 if 链,用一张表。补全 dispatch(routes, method, path):routes 是 {(方法, 路径): 处理函数};找到就调它交回结果;路径存在但方法不对交回 (405, "方法不对");都
补全:取路径参数
补全 note_id(path):路径形如 /notes/<数字> 时交回那个整数;不是这种形状(前缀不对、不是数字、多一截)交回 None。
补全:查询参数
(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha
补全:给应用加一条路由
(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha
什么时候回 JSON
贯穿全条的应用(留言板): handle(method, url, body, notes) → (状态码, 头, 正文) / GET 200 首页:留言列表 + 发表表单 /about GE
JSON 响应的内容类型
交回 JSON 时,Content-Type 应该写【0】。
中文和 ensure_ascii
json.dumps({"a": "天气"}) 默认打出 {"a": "\u5929\u6c14"}。加 ensure_ascii=False 之后【0】。