首页 > 其他分享 >Go语言template相关知识

Go语言template相关知识

时间:2023-01-17 00:55:20浏览次数:38  
标签:body tmpl end err 模版 知识 template Go

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)`

标签:body,tmpl,end,err,模版,知识,template,Go
From: https://www.cnblogs.com/zhengel/p/17056793.html

相关文章

  • 计算机基础知识
    计算机基础知识计算机的本质 计算机也称之为"电脑">>>:通电的大脑 计算机的工作肯定离不开电电信号只有高低电平两种状态(0和1) 计算机其实只认识数字0和1(二进制) ......
  • golang:osd.read函数
    函数原型func(f*File)Read(b[]byte)(nint,errerror){//传入b一段内存Buff//检测file是否为空,为空则返回 iferr:=f.checkValid("read"......
  • go 相关
    goconfigwindowsexportGOCACHE="D:\software\go_\cache"exportGOENV="D:\software\go_\env"exportGOMODCACHE="D:\software\go_\modcache"exportGOPATH="D:\soft......
  • 关于mongoDB
    一、非正常停止MongoDB服务,下次启动失败,可以删除data文件夹下面的mongo.lock文件参考文档:https://m.py.cn/db/mongodb/16368.html 二、启动mongodb服务报错:Errorstar......
  • Go读取yaml文件到struct类
    1、yaml文件准备common:secretid:AKIDxxxxxsecretKey:3xgGxxxxegion:ap-guangzhouzone:ap-guangzhou-7InstanceChargeType:POSTPAID_BY_HOUR2......
  • 关于GIT使用的扫盲知识
      关于GITa)     什么是git用于团队里各成员协同开发项目的一个代码管理工具。与之SVN、微软的TFS是同一类东西。而git是时下最火的代码管理工具。b)   ......
  • Go - struct
    typeMemberstruct{namestring`json:"name"`}func(m*Member)setName(namestring){m.name=name}func(mMember)getName(){fmt.Printf("%p\n",......
  • GO语言操作Elasticsearch
    Elasticsearch简介Elasticsearch是一个开源的搜索引擎,建立在一个全文搜索引擎库ApacheLucene™基础之上。Lucene可以说是当下最先进、高性能、全功能的搜索引擎库–......
  • go之toml包实战
    go的toml包使用案例toml包【github.com/BurntSushi/toml】作用是将配置文件解析到结构体中,本文带你如何实现1、toml文件#是key=value书写类型[Mysql]UserName="t......
  • golang 结构体
    结构体与JSON序列化JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON键值对是用来保存JS对象的一......