Go语言template相关知识

templeate三板斧

  • 创建模版:

    模版文件以.tmpl结尾, 文件的语法和html相同。

  • 解析模版

    t, err := template.ParseFile("./filename.tmpl")
    if err != nil {
    //错误处理
    }
  • 渲染模版

    err = t.Execute(w, data)
    if err != nil {
    //错误处理
    }

    Execute()函数第一个参数为ResponseWriter接口类型的值, 第二参数为传入模版的数据。


模版语法:

表示传入的数据
{{.}}
假如传入的是一个结构体或者map
{{.字段名称}}
{{.key名称}}
模版的注释
{{/*这是一个注释*/}}
变量
$opp := {{.}}
条件判断
{{if 条件}} body {{end}}
{{if 条件}} body {{else}} body {{end}}
{{if 条件}} body {{else if 条件}} body {{end}}
range
{{range 数组}} 数组值 {{end}}
常见的预定义函数
比较函数
eq 等价于: arg1 ==
lt 等价于: arg1 < arg2,
le 等价于: arg1 <= arg2
自定义函数
1. 首先自定义一个函数
kua := func(arg string) string {
return "你好" + arg
}
2. 为模版添加一个函数
template.New().Funcs(传入一个函数).Parse()
修改模版语法
template.Delims("((", "))")
引入别的模版
{{template "base.tmpl"}}
{{define "content"}}
<div>Hello world</div>
{{end}}
模版继承
{{block "name" .}}{{end}}
继承别的模版
{{/*继承根模板*/}}
{{template "base.tmpl" .}}
{{/*重新定义块模板*/}}
{{define "content"}}
<h1>这是home2页面</h1>
<p>Hello {{ . }}</p>
{{end}}
如果继承别的模版需要换一个解析函数:
base.tmpl 是根模版, index.tmpl是子模版
`template.ParseFiles("./base.tmpl", "./index.tmpl")`
`err = t.ExecuteTemplate(w, "index.tmpl", msg)`
posted @   wangturing  阅读(213)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示