我是靠谱客的博主 舒适路人,最近开发中收集的这篇文章主要介绍gin -html rendering,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用LoadHTMLGlob() or LoadHTMLFiles()加载模板文件路径

router.LoadHTMLGlob(“templates/") 全局加载templates/下一级模板文件
router.LoadHTMLGlob("templates/**/
”) 全局加载templates/*/下二级模板文件
router.LoadHTMLFiles()加载指定路径模板文件

func main() {
	router := gin.Default()
	router.LoadHTMLGlob("templates/**/*")
	//router.LoadHTMLFiles("templates/front/index.html", "templates/web/index.html")
	router.GET("/front/index", func(c *gin.Context) {
		c.HTML(http.StatusOK, "front/index.html", gin.H{
			"title": "首页",
			"desc":"front",
		})
	})
	router.GET("/web/index", func(c *gin.Context) {
		c.HTML(http.StatusOK, "web/index.html", gin.H{
			"title": "后台",
			"desc":"web",
		})
	})
	router.Run(":8080")
}

{{define “模板名称”}} {{end}} 定义在不同目录中使用同名模板
{{ template “需引用模板” .}} 添加需要引用的模板,后面的点.表示将数据传入模板
{{.title}}表示获取变量title的值

front/index.html

{{define "front/index.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{.title}}</title>
</head>
<body>
    <h1>我是网址首页</h1>
    {{ template "common.html" .}}
</body>
</html>
{{end}}

web/index.html

{{define "web/index.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{.title}}</title>
</head>
<body>
    <h1>我是网址后台</h1>
    {{ template "common.html" .}}
</body>
</html>
{{end}}

common.html

<div>
    <span style="color: blue">我是网页公共部分 - {{.desc}}</span>
</div>
自定义模板渲染

你可以使用自己的html渲染

import "html/template"

func main() {
	router := gin.Default()
	html := template.Must(template.ParseFiles("file1", "file2"))
	router.SetHTMLTemplate(html)
	router.Run(":8080")
}
自定义分隔符

使用自己喜欢的符号来获取模板变量数据

	r := gin.Default()
	r.Delims("{[{", "}]}")
	r.LoadHTMLGlob("/path/to/templates")
自定义模板函数

使用自定义的函数来处理传入到模板里的数据
main.go

import (
    "fmt"
    "html/template"
    "net/http"
    "time"

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

func formatAsDate(t time.Time) string {
    year, month, day := t.Date()
    return fmt.Sprintf("%d/%02d/%02d", year, month, day)
}

func main() {
    router := gin.Default()
    router.Delims("{[{", "}]}")
    router.SetFuncMap(template.FuncMap{
        "formatAsDate": formatAsDate,
    })
    router.LoadHTMLFiles("./testdata/template/raw.tmpl")

    router.GET("/raw", func(c *gin.Context) {
        c.HTML(http.StatusOK, "raw.tmpl", map[string]interface{}{
            "now": time.Date(2017, 07, 01, 0, 0, 0, 0, time.UTC),
        })
    })

    router.Run(":8080")
}

raw.tmpl

Date: {[{.now | formatAsDate}]}

Result

Date: 2017/07/01

more use detail : https://gin-gonic.com/docs/examples/

最后

以上就是舒适路人为你收集整理的gin -html rendering的全部内容,希望文章能够帮你解决gin -html rendering所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部