golang html模板引擎
时间: 2023-07-13 10:17:54 浏览: 66
Go语言自带的html/template包是一个功能强大的模板引擎,可以用于生成HTML、XML、SVG等格式的文本。它支持模板继承、嵌套、条件判断、循环等常用的模板语法,并且可以自定义函数和方法,非常灵活。
下面是一个简单的示例:
```go
package main
import (
"html/template"
"os"
)
func main() {
type Person struct {
Name string
Age int
}
p := Person{"Alice", 30}
tmpl, err := template.New("test").Parse("{{.Name}} is {{.Age}} years old.\n")
if err != nil {
panic(err)
}
err = tmpl.Execute(os.Stdout, p)
if err != nil {
panic(err)
}
}
```
输出结果为:
```
Alice is 30 years old.
```
在这个例子中,我们定义了一个Person结构体,然后创建了一个模板对象,并用Parse方法解析了一个模板字符串。模板字符串中的{{.Name}}和{{.Age}}是变量占位符,表示要填充的数据。最后,我们通过Execute方法将模板渲染成文本并输出到标准输出。
当然,实际使用中,我们可以将模板保存成文件,然后用ParseFiles或ParseGlob方法解析。除了基本的模板语法,html/template包还提供了许多高级特性,例如模板继承、块定义、变量定义等,可以满足复杂的模板需求。