go语言 html 模板语法,Go html/template 模板的使用实例详解

本文详细介绍了Go语言中html/template包的使用,包括从字符串和文件载入模板,展示了模板语法如条件判断、范围遍历等,并通过示例解释了如何在Web服务器中使用模板引擎返回HTML页面。强调了正确指定模板名称的重要性,以及如何避免模板对象名与模板名不一致导致的问题。
摘要由CSDN通过智能技术生成

从字符串载入模板

我们可以定义模板字符串,然后载入并解析渲染:

template.New(tplName string).Parse(tpl string)

// 从字符串模板构建

tplStr := `

{ { .Name }} { { .Age }}

`

// if parse failed Must will render a panic error

tpl := template.Must(template.New("tplName").Parse(tplStr))

tpl.Execute(os.Stdout, map[string]interface{}{Name: "big_cat", Age: 29})

从文件载入模板

模板语法

模板文件,建议为每个模板文件显式的定义模板名称: { { define "tplName" }} ,否则会因模板对象名与模板名不一致,无法解析(条件分支很多,不如按一种标准写法实现),另展示一些基本的模板语法。

使用 { { define "tplName" }} 定义模板名

使用 { { template "tplName" . }} 引入其他模板

使用 . 访问当前数据域:比如 range 里使用 . 访问的其实是循环项的数据域

使用 $. 访问绝对顶层数据域

views/header.html

{ { define "header" }}

content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

{ { .PageTitle }}

{ { end }}

views/footer.html

{ { define "footer" }}

{ { end }}

views/index/index.html

{ { define "index/index" }}

{ {/*引用其他模板 注意后面的 . */}}

{ { template "header" . }}

hello, { { .Name }}, age { { .Age }}

{ { template "footer" . }}

{ { end }}

views/news/index.html

{ { define "news/index" }}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值