我們可以使用以下的方式去渲染html
func main() {
router := gin.Default()
router.LoadHTMLGlob("templates/*")
//router.LoadHTMLFiles("templates/template1.html", "templates/template2.html")
router.GET("/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.tmpl", gin.H{
"title": "Main website",
})
})
router.Run(":8080")
}
在html中我們可以使用特殊的雙花括號來渲染title這個值
<html>
<h1>
{{ .title }}
</h1>
</html>
值得注意的是這種方式并不是gin特有的,而是golang特有的,它還有其他的模板語法。
模板語法:
定義變量:
{{$article := "hello"}}
也可以給變量賦值
{{$article := .ArticleContent}}
函數的調用:
{{funcname .arg1 .arg2}}
判斷語法:
{{if .condition}}
{{end}}
{{if .condition1}}
{{else if .contition2}}
{{end}}
- not 非
{{if not .condition}}
{{end}}
- and 與
{{if and .condition1 .condition2}}
{{end}}
- or 或
{{if or .condition1 .condition2}}
{{end}}
- eq 等于
{{if eq .var1 .var2}}
{{end}}
- ne 不等于
{{if ne .var1 .var2}}
{{end}}
- lt 小于
(less than){{if lt .var1 .var2}}
{{end}}
- le 小于等于
{{if le .var1 .var2}}
{{end}}
- gt 大于
{{if gt .var1 .var2}}
{{end}}
- ge 大于等于
{{if ge .var1 .var2}}
{{end}}
循環:
{{range $i, $v := .slice}}
{{end}}
引入一個模板:
{{template "navbar"}}