从之前程序继续

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

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

func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.String(200, "%v", "Hello World")
})
r.Run()

}

在 r.GET 中,我们使用了 c.String ,类似地,还可以使用 c.JSON()

1
2
3
4
c.JSON(200,gin.H{
"success":true,
"msg":"你好 gin",
})

gin.H 其实就是 map[string]interface{} 的捷径,在里面写上键值对,就能成功访问,可以往里面放各种各样的类型或者结构体返回

而 c.HTML() 是用于渲染模板的(下节详细讲),首先新建一个 templates 文件夹,在其中新建 index.html ,将代码复制进去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{.time}}<br>
{{.location}}<br>
{{.weather}}
</body>
</html>

其中,后台的数据用双大括号阔上,加一个点,再写上名字

回到 main.go ,在新建路由的下一行加上这句话来加载模板

1
r.LoadHTMLGlob("templates/*")

然后再配置路由

1
2
3
4
5
c.HTML(200, "index.html", gin.H{
"time": "20xx年x月x日",
"location": "xx市",
"weather": "晴",
})

运行,访问本地,可以看到已经正常渲染