golang模板引擎html,Golang模板引擎快速⼊门教程Go语⾔内置了 text/template 和 html/template两个模板库,专门⽤于处理⽹页html模板。
html/template 是在 text/template 模板库的基础上增加了对html输出的安全处理,主要⽬的是为了防⽌被攻击。
下⾯通过⼀个例⼦介绍template的⽤法。
模版引擎使⽤流程:
编写模版代码
导⼊包
加载模版代码
根据模版参数渲染模版
1.快速⼊门例⼦
1.1.编写模版代码
将下⾯模版代码保存⾄views/demo.tpl⽂件中, ⽂件后缀名随意。
{{define "demo"}}
昵称: {{.Name}},
{{- if .IsWin}}
恭喜,⼤吉⼤利,今晚吃鸡!
{{- else}}
遗憾,鸡被吃光了!
{{- end}}
{{- end}}
define "模板名" ⽤于定义⼦模板,后⾯渲染模板会⽤到这个名字。
提⽰: ⼤家可以先跳过模版语法的细节,先了解⼤概怎么⽤,后⾯的章节会详细介绍模版语法。
1.2.导⼊包
import "text/template"
提⽰: 本⽂主要以text/template为例,如果要使⽤html/template直接替换包名就⾏,他们接⼝⼀样。
1.3.加载模版代码
// 加载模版代码,并且创建template对象t
// template.ParseGlob 函数加载views⽬录下的所有tpl为后缀的模版⽂件
// template.Must函数主要⽤于检测加载的模版有没有错误,有错误输出panic错误,并且结束程序。
t := template.Must(template.ParseGlob("./views/*.tpl"))
1.4.根据模版参数渲染模版
定义模版参数:
//这⾥定义⼀个struct类型的模版参数,实际上模版可以是任意类型数据
type GameStatus struct {
Name string
IsWin bool
}
提⽰: 因为只能传⼊⼀个模版参数,如果想传⼊多个模版参数,可以使⽤map或者struct类型。
初始化模板参数, 这⾥初始化⼀个参数数组,下⾯⽤于循环渲染模板。
var userStatus = []GameStatus{
{"⼤春", true},
{"NiuBee", false},
{"球球", true},
}
下⾯是根据userStatus 数组循环渲染模板
for _, u := range userStatus {
//根据参数u, 渲染命名为demo的模板,并且将渲染结果打印到标准输出html 网页 模板 引导
err := t.ExecuteTemplate(os.Stdout, "demo", u)
if err != nil {
log.Println("executing template:", err)
}
}
输出结果:
昵称: ⼤春,
恭喜,⼤吉⼤利,今晚吃鸡!
昵称: NiuBee,
遗憾,鸡被吃光了!
昵称: 球球,
恭喜,⼤吉⼤利,今晚吃鸡!
说明:根据不同的模版参数,渲染模版输出不同的页⾯内容,就是模版引擎的主要⼯作,⽬的是简化html模版输出⼯作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。