用Golang实现轻量级留言板系统:通过net/http处理路由(/展示留言、/post接收提交)、html/template渲染HTML页面、内存切片存储Message结构体数据,支持表单提交、重定向防重复、时间格式化及模板遍历,几段代码即可运行。
用 Golang 实现一个轻量级留言板系统,核心在于:用 net/http 处理请求、用 html/template 渲染页面、用内存(或后续可扩展为文件/数据库)存储留言。不依赖框架,几段代码就能跑起来,适合初学后端逻辑和前后端协作的同学。
先定义两个主要接口:/ 展示所有留言并提供提交表单;/post 接收表单提交并重定向回首页。用 http.HandleFunc 注册处理函数即可:
r.ParseForm()),校验非空,追加到内存切片,再用 http.Redirect 跳转避免重复提交var messages []Message),上线前需替换为持久化方案定义一个简单结构体承载留言信息:
type Message struct {
ID int `json:"id"`
Username string `json:"username"`
Content string `json:"content"`
CreatedAt time.Time `json:"created_at"`
}
用切片模拟“数据库”:
messages = make([]Message, 0)
messages = append(messages, msg)
len(messages) + 1 简单生成(注意并发安全,学习阶段可忽略;正式项目应加锁或改用 sync.Map)在 ./templates/index.html 中写模板,使用 Go 的 {{.}}、{{range .}} 语法遍历数据:
提交到后端{{range .Messages}}...{{end}} 循环输出,{{.Username}}、{{.Content}} 插入字段{{.CreatedAt.Format "2006-01-02 15:04"}}(Go 时间格式固定写法)template.ParseFiles("templates/index.html"),执行时传入 map:t.Execute(w, map[string]interface{}{"Messages": messages})
在 main() 函数中注册路由、加载模板、启动服务器:
http.ListenAndServe(":8080", nil) 启动本地服务./static/ 并用 http.FileServer 暴露http://localhost:8080 即可看到可交互的留言板基本上就这些。功能完整、无外部依赖,是理解 Golang Web 开发流程的扎实起点。后续想加
编辑、删除、分页或换 SQLite,都在这个骨架上自然延伸。