用net/http实现轻量博客系统:路由直连handler,html/template渲染预编译markdown,os.readdir按文件名排序列表,static目录托管静态资源,规避框架与数据库复杂度。
用 Go 写一个能跑起来的博客系统,核心不在框架选型,而在路由、模板和数据存取这三块怎么不绕弯子。
用 net/http 搭基础路由,别急着上 gin 或 echo
刚起步时引入第三方 Web 框架反而会模糊 HTTP 本质。直接用标准库,几行就能跑通首页、文章页、后台入口:
-
http.HandleFunc("/", homeHandler)处理首页,返回 Markdown 渲染后的文章列表 -
http.HandleFunc("/post/", postHandler)用 URL 路径后缀匹配文章 ID,比如/post/2024-05-10-my-first-post -
http.HandleFunc("/admin/", adminHandler)加个简单 BasicAuth 中间件(http.StripPrefix+http.HandlerFunc包一层)就足够临时管理
好处是:没有中间件生命周期干扰,http.ResponseWriter 和 *http.Request 的流向一目了然;坏处是路由不支持正则或参数自动提取——但初期几十篇博客根本不需要。
用 html/template 渲染页面,把 Markdown 当字符串塞进去
不用集成 blackfriday 或 goldmark 做实时解析。先把内容存在 .md 文件里,启动时一次性读取、转成 HTML 并缓存到内存 map: