使用 Gin 开发博客教程一

Gin 是一个用 Go 语言开发的 Web 框架,提供类 Martini 的 API,但是性能更好。因为有了httprouter 性能提升了 40 倍之多。今天我就用它开发一个简单的博客,熟悉一下它的使用。

安装

1
go get github.com/gin-gonic/gin

安装完毕之后,会在 $GOPATH/src 目录下面找到包文件。

入门示例

1
2
3
4
5
6
7
8
9
10
11
12
13
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)

func main() {
route := gin.Default()
route.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "Hello World")
})
route.Run()
}

执行 go run main.go 之后,打开浏览器 http://localhost:8080 就可以查看效果了。

路由参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)

func main() {
route := gin.Default()
route.GET("/user/:id", func(c *gin.Context) {
id := c.Param("id")
c.String(http.StatusOK, "id=%s", id)
})
route.Run()
}

执行 go run main.go 之后,打开浏览器 http://localhost:8080/user/100 就可以查看效果了。

GET 传参

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)

func main() {
route := gin.Default()
route.GET("/", func(c *gin.Context) {
// name := c.Query("name") // 没有默认值
name := c.DefaultQuery("name") // 设置默认值
c.String(http.StatusOK, "Hello %s", name)
})
route.Run()
}

执行 go run main.go 之后,打开浏览器 http://localhost:8080/?name=Go 就可以查看效果了。

POST 传参

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)

func main() {
route := gin.Default()
route.POST("/post", func(c *gin.Context) {
// name := c.PostForm("name") // 没有默认值
// age := c.PostForm("age")
name := c.DefaultPostForm("name", "Li") // 设置默认值
age := c.DefaultPostForm("age", 20)
c.String(http.StatusOK, "Name=%s,Age=%s", name, age)
})
route.Run()
}

可以使用模拟表单的方式进行测试。

html 模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

import (
"github.com/gin-gonic/gin"
"net/http"
)

func main() {
route := gin.Default()
route.LoadHTMLGlob("views/*")

route.GET("/", func(t *gin.Context) {
t.HTML(http.StatusOK, "index.html", nil))
})
route.Run()
}

views/index.html

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Gin</title>
</head>
<body>
<h3>Gin html template</h3>
</body>
</html>

准备工作已经就绪,我们下节就正式进入开发博客任务。

©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息

Happy Coding

坚持原创技术分享,您的支持将鼓励我继续创作!
Flyertutor WeChat Pay

WeChat Pay

Flyertutor Alipay

Alipay