package main
import "github.com/gin-gonic/gin"
type Article struct {
Title string
Content string
}
func main() {
r := gin.Default()
//加载模板
r.LoadHTMLGlob("templates/**/*")
//前台
r.GET("/", func(c *gin.Context) {
c.HTML(200, "default/index.html", gin.H{
"title": "首页",
"msg": "我是msg",
"score": 89,
"hobby": []string{"吃饭", "睡觉", "写代码"},
"newsList": []interface{}{
&Article{
Title: "新闻标题111",
Content: "新闻详情111",
},
&Article{
Title: "新闻标题222",
Content: "新闻详情222",
},
},
"testSlice": []string{},
"news": &Article{
Title: "新闻标题",
Content: "新闻内容",
},
})
})
r.GET("/news", func(c *gin.Context) {
news := &Article{
Title: "新闻标题",
Content: "新闻详情",
}
c.HTML(200, "default/news.html", gin.H{
"title": "新闻页面",
"news": news,
})
})
//后台
r.GET("/admin", func(c *gin.Context) {
c.HTML(200, "admin/index.html", gin.H{
"title": "后台首页",
})
})
r.GET("/admin/news", func(c *gin.Context) {
c.HTML(200, "admin/news.html", gin.H{
"title": "新闻页面",
})
})
r.Run()
}
templates/admin/index.html
{{define "admin/index.html"}}
<!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>
<h2>这是后台首页</h2>
</body>
</html>
{{end}}
templates/admin/news.html
{{define "admin/news.html"}}
<!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>
<h2>后台新闻页面</h2>
</body>
</html>
{{end}}
templates/default/index.html
<!--相当于给模板定义一个名称 define-end成对出现-->
{{define "default/index.html"}}
<!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>
<h2>{{.title}}</h2>
{{$t := .title}}
<!-- 定义变量 -->
<br>
<h4>
{{$t}}
</h4>
<!-- 条件判断 -->
{{if ge .score 60}}
<p>及格</p>
{{else}}
<p>不及格</p>
{{end}}
{{if gt .score 90}}
<p>优秀</p>
{{else if gt .score 80}}
<p>良好</p>
{{else if gt .score 60}}
<p>及格</p>
{{else}}
<p>不及格</p>
{{end}}
<!-- 循环遍历数据 -->
<ul>
{{range $key,$value:=.hobby}}
<li>{{$key}}----{{$value}}</li>
{{end}}
</ul>
<br>
<ul>
{{range $key,$value:=.newsList}}
<li>{{$key}}----{{$value.Title}}----{{$value.Content}}</li>
{{end}}
</ul>
<br>
<ul>
{{range $key,$value:=.testSlice}}
<li>{{$key}}----{{$value}}</li>
{{else}}
<li>数组中没有数据</li>
{{end}}
</ul>
<!-- with 解构结构体 -->
<p>{{.news.Title}}</p>
<p>{{.news.Content}}</p>
<br>
{{with .news}}
<p>{{.Title}}</p>
<p>{{.Content}}</p>
{{end}}
</body>
</html>
{{end}}
templates/default/news.html
{{define "default/news.html"}}
<!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>
<h2>{{.title}}</h2>
<p>
{{.news.Title}}
</p>
<p>
{{.news.Content}}
</p>
</body>
</html>
{{end}}