Go语言template包是生成动态文本的核心工具,支持变量渲染、条件判断、循环控制、HTML自动转义及模板组合复用,安全高效且无外部依赖。

Go语言的template包是生成动态文本(包括HTML)的核心工具,它通过数据驱动的方式将结构化数据注入预定义模板,安全、高效且无依赖。
模板使用双花括号{{ }}包裹指令,最常用的是点号.表示当前传入的数据上下文。例如:
模板字符串:"Hello, {{ .Name }}! You have {{ .Count }} messages."
配合结构体数据:type User struct { Name string; Count int }<br>data := User{Name: "Alice", Count: 5}
调用tmpl.Execute(os.Stdout, data)将输出:Hello, Alice! You have 5 messages.
模板支持{{if}}、{{range}}等控制结构,无需在Go代码中拼接逻辑:
立即学习“go语言免费学习笔记(深入)”;
{{if .Active}}<span class="status">Online</span>{{else}}<span class="status">Offline</span>{{end}}{{range .Items}}<li>{{.Title}}</li>{{end}} —— 遍历切片或map,.在range内代表当前元素{{with}}简化嵌套字段访问:{{with .Profile}}<h2>{{.Nickname}}</h2>{{end}}
默认情况下,html/template会对变量内容执行HTML转义,防止XSS攻击。例如:{{.Bio}}中若含<script>alert(1)</script>,会被渲染为纯文本。
如需原样输出HTML(确保内容可信),使用{{.HTMLContent | safeHTML}},其中safeHTML是内置函数;也可自定义函数返回template.HTML类型值。
大型页面常拆分为多个模板文件(如header.html、list.html、footer.html),通过{{template "name" .}}引入:
template.Must(template.ParseFiles("base.html", "list.html"))加载多个文件{{define "main"}}...{{end}},子模板用{{template "main" .}}调用{{template "item" .CurrentItem}}
以上就是如何使用Golang template生成动态文本_结合HTML模板渲染内容的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号