前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GoWeb基础——Text/HTML模板

GoWeb基础——Text/HTML模板

作者头像
羊羽shine
发布2019-05-29 17:02:15
5390
发布2019-05-29 17:02:15
举报
文章被收录于专栏:Golang开发Golang开发

模板函数

创建一个名字为name的模板

代码语言:javascript
复制
func New(name string) *Template

解析模板字符串

代码语言:javascript
复制
func (t *Template) Parse(text string) (*Template, error)

解析文件

代码语言:javascript
复制
func (t *Template) ParseFiles(filenames ...string) (*Template, error)

执行模板,将结果写入wr

代码语言:javascript
复制
func (t *Template) Execute(wr io.Writer, data interface{}) error

注册函数给模板,注册之后模板就可以通过名字调用外部函数

代码语言:javascript
复制
func (t *Template) Funcs(funcMap FuncMap) *Template
type FuncMap map[string]interface{}

对象解析

{{}}来包含需要在渲染时被替换的字段,{{.}}表示当前的对象 如果要访问当前对象的字段通过{{.FieldName}},但是需要注意一点:这个字段必须是导出的(字段首字母必须是大写的),否则在渲染的时候就会报错

代码语言:javascript
复制
import (
    "html/template"
    "log"
    "os"
)

type User struct {
    Name string
    Age int
}

func main(){
    tmpl,err := template.New("Demo").Parse("My name is {{.Name}}\n I am {{.Age}} year old")
    if err!=nil {
        log.Fatal("Parse error",err);
    }
    err = tmpl.Execute(os.Stdout,User{
        Name :"bx",
        Age :23,
    })
    if err!=nil {
        log.Fatal("execute error",err);
    }
}

{{range.}}{{end}}

代码语言:javascript
复制
import (
    "html/template"
    "os"
)

func main(){
    slice := []string{"test1","test2"}
    tmpl,_:= template.New("slice").Parse("{{range.}}{{.}}\n{{end}}")
    tmpl.Execute(os.Stdout,slice)
}

管道

代码语言:javascript
复制
func main(){
    const temStr = `{{. | printf  "%s"}}`
    t := template.Must(template.New("demo").Parse(temStr))
    t.Execute(os.Stdout, "hello world")
}

函数调用

代码语言:javascript
复制
import (
    "html/template"
    "os"
)
func foo(str string)(result string){

    return "hello "+str
}
func main(){
    t, _:= template.New("demo").Funcs(template.FuncMap{"foo":foo}).Parse("{{.|foo}}")
    t.Execute(os.Stdout,"test")
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模板函数
  • 对象解析
  • {{range.}}{{end}}
  • 管道
  • 函数调用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档