对于 golang 框架的初学者而言,学习核心库(提供基本 web 应用程序功能)、http 路由(映射 url 到处理程序)和模板引擎(渲染动态 html)是最简单的。通过创建一个简单的博客项目,初学者可以整合这些概念,加深对 golang 框架的理解。
Go 框架学习的最佳入门点
Golang 是 DevOps 团队中常用的编程语言,而 Golang 框架使开发人员能够快速有效地构建 Web 应用程序。了解 Golang 框架中最容易学习的部分可以帮助初学者快速入门。
核心库
立即学习“go语言免费学习笔记(深入)”;
Go 核心库提供了多种开发 web 应用程序的基本功能,是最容易学习的框架部分:
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, world!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
这段代码创建了一个简单的HTTP服务器,当访问根 URL 时会显示 "Hello, world!"。
HTTP 路由
HTTP 路由器允许将 URL 模式映射到处理程序函数:
import (
"<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15841.html" target="_blank">git</a>hub.com/gorilla/mux"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Index page")
}
func about(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "About page")
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/", index)
r.HandleFunc("/about", about)
http.ListenAndServe(":8080", r)
}
现在,访问 / 会显示 "Index page",而访问 /about 会显示 "About page"。
模板引擎
模板引擎用于渲染具有动态内容的 HTML 页面:
import (
"github.com/gobuffalo/buffalo"
"github.com/gobuffalo/buffalo/render"
)
func homeHandler(c buffalo.Context) error {
return c.Render(200, r.HTML("home.html"))
}
func main() {
app := buffalo.New(buffalo.Options{})
app.GET("/", homeHandler)
app.Serve()
}
这里,homeHandler 使用 Buffalo 的默认模板引擎渲染一个名为 home.html 的模板。
实战案例:构建一个简单的博客
初学者可以尝试创建一个简单的博客来练习这些概念:
- 初始化一个 Go 模块:go mod init myblog
- 安装 Gorilla 路由器:go get github.com/gorilla/mux
- 创建一个Post类型并初始化一个Post列表:var posts []Post
创建路由器并设置HTTP处理程序:
func main() { r := mux.NewRouter() r.HandleFunc("/", getPosts) r.HandleFunc("/{id}", getPost) r.HandleFunc("/new", newPost) http.ListenAndServe(":8080", r) }
- 实现HTTP处理程序来处理 GET、POST 和 PUT 请求
- 渲染模板和显示数据
通过构建这个简单的博客,初学者可以实际应用这些概念,并获得 Golang 框架学习的坚实基础。