把响应拆开看

(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha

开始练习 →

最小服务要有什么

真机上的壳(标准库 http.server): from http.server import BaseHTTPRequestHandler, HTTPServer class H(BaseHTTPRequestHandler):

开始练习 →

为什么把 handle 拆出来

真机上的壳(标准库 http.server): from http.server import BaseHTTPRequestHandler, HTTPServer class H(BaseHTTPRequestHandler):

开始练习 →

127.0.0.1 和 0.0.0.0

把服务绑在 127.0.0.1:8000,和绑在 0.0.0.0:8000,区别是【0】。

开始练习 →

起不来的常见原因

HTTPServer(("127.0.0.1", 8000), H) 这一行抛 OSError: [Errno 98] Address already in use。意思是【0】。

开始练习 →

壳把请求翻译成什么

(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha

开始练习 →

补全:do_GET

(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha

开始练习 →

补全:最小应答

不用 spine 的应用,从零写一个最小的 hello(method, path):GET / 交回 (200, "text/plain", "你好");别的路径 404 "没有"

开始练习 →

补全:算 Content-Length

正文是中文时,Content-Length 是字节数不是字符数。补全 length_of(text):UTF-8 编码后的字节数。

开始练习 →

路由是什么

贯穿全条的应用(留言板): handle(method, url, body, notes) → (状态码, 头, 正文) / GET 200 首页:留言列表 + 发表表单 /about GE

开始练习 →