补全:删除也是 POST
(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha
样式表是怎么到浏览器的
(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha
静态文件的 Content-Type
服务器交回 /static/style.css 时 Content-Type 写成了 text/html。结果是【0】。
按扩展名定类型
一张扩展名到类型的表。看几个文件各配什么类型,没登记的一律 application/octet-stream: TYPES = {".css": "text/css", ".js"
静态路由的边界
(每道题开头都有同一段:上面那个应用的全部源码——render 把标题和正文塞进页面骨架 PAGE,list_html / form_html 生成列表和表单,STATIC 是静态文件表,handle 是入口。判题机不联网,题里直接调 ha
补全:从目录里读静态文件
真机上静态文件在目录里。补全 serve_static(root, path):path 形如 /static/x.css,去掉前缀后在 root(一个 {文件名: 内容} 字典,模拟目录)里找;找到交回 (200, 类型, 内容),没有
补全:页面骨架
补全 skeleton(title, nav, main):交回一页 HTML,结构是 doctype、head(charset、title、样式链接 /static/style.css)、body 里依次 <nav>、<
补全:导航高亮
补全 nav_html(current):三个链接 首页 /、关于 /about、接口 /api/notes;当前页那个链接加 class="on"。
补全:一条 CSS 规则
补全 css_rule(selector, props):把 {属性: 值} 拼成一条规则 选择器 { 属性: 值; 属性: 值; }(属性按字典顺序);再补 stylesheet(rules):多条规则用换行连。看第二条规则和总行数。
数据放哪
(这一节留言不再是一串字符串,而是一列字典:{"id": 编号, "text": 内容, "by": 作者};数据存在一个 JSON 文件里,应用启动时读、改动后写回——proje