思考并回答以下问题:
实验介绍
本次实验的主题是Gin框架模版引擎。在Web应用程序中,模板渲染是一项非常重要的任务,它允许我们通过将动态数据注入到预定义的HTML模板中来生成动态的Web页面。Gin是一个快速而灵活的Web框架,支持多种模板引擎。在本章中,我们将学习如何使用Gin的模板渲染引擎来呈现动态Web页面。
知识点
- 模版引擎
- 模版参数
模版引擎
对于传统的Web应用开发者来说,应该会比较熟悉MVC(Model View Controller),一种Web页面开发框架。而其中的视图(View)就是将背后的模型(Model)数据通过一定方式注入到HTML页面中,最后再返回给浏览器展示。在Web应用中,这样注入数据并传输HTML给浏览器最后展现页面的方式就是模版引擎。而对于Gin框架来说,同样支持模版引擎,而且可以通过配置使用多种模版引擎。
下面是一个Gin HTML模版。1
2
3
4
5
6
7
8
9
<html>
<head>
<title>{{.title}}</title>
</head>
<body>
<h1>{{.message}}</h1>
</body>
</html>
这其实是一段非常简单的HTML代码,包括了<head>
、<body>
等内置标签。跟普通HTML不一样的是,它还有双花括号括起来的变量。其中,{{.title}}表示的是title这个参数,{{.message}}表示的是message这个参数。因此,如果我们在模版引擎中传入title为Gin,在message中传入你好,Gin
,最终HTML会生成如下。1
2
3
4
5
6
7
8
9
<html>
<head>
<title>Gin</title>
</head>
<body>
<h1>你好,Gin</h1>
</body>
</html>
实战练习
下面我们将通过实际实验来学习如何在Gin框架中使用模版渲染。
打开VS Code,在main.go加载模版,内容如下。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21package main
import (
"gin-course/middlewares"
"gin-course/routes"
"github.com/gin-gonic/gin"
)
func main() {
// 创建 Gin 引擎
app := gin.New()
// 加载 templates 目录下的所有模板文件
app.LoadHTMLGlob("templates/*")
// 注册路由 users
routes.RegisterUsers(app)
// 运行 Gin 引擎
app.Run(":8080")
}
然后,编辑routes/users.go文件,将之前我们创建的getMe获取自己用户信息的API修改为模版渲染的逻辑。代码如下。1
2
3
4
5
6func getMe(c *gin.Context) {
data := map[string]interface{}{
"username": "zhangsan",
}
c.HTML(http.StatusOK, "user.html", data)
}
其中,data是传给模版的变量数据。
最后,需要创建用户模版user.html文件,创建templates文件夹,在user.html中输入如下内容。1
2
3
4
5
6
7
8
9
<html>
<head>
<title>用户 {{.username}}</title>
</head>
<body>
<h1>Hello, {{.username}}</h1>
</body>
</html>
现在在终端中运行go run main.go
启动程序,然后打开Web服务,浏览器中路径输入/me,可以看到如下内容。
模版参数
在上个实验中,我们用到了{{.username}}这样的双花括号的参数,这就是Gin框架中的模版参数。
HTML模板渲染实验总结
通过本次实验,我们掌握了如何在Gin框架中使用模版渲染、模版参数。当我们需要编写简单的前端页面时,这是非常有帮助的。