Go 语言模板引擎介绍

什么模板

Web 模板就是预先设计好的 HTML 页面,它可以被模板引擎反复的使用,来产生 HTML 页面。

Go 语言的标准库提供了 text/template,html/template 两个模板库,大多数 Go 的 Web 框架都使用这些库作为 默认的模板引擎。

Go 语言的模板引擎

Go 主要使用的是 text/template,HTML 相关的部分使用了 html/template,是个混合体。

关于模板

模板必须是可读的文本格式,扩展名任意。对于 Web 应用通常就是 HTML。里面会内嵌一些命令(叫做 action)

text/template 是通用模板引擎,html/template 是 HTML 模板引擎。

action 位于双层花括号之间:{{.}}这里的,就是一个action,它可以命令模板引擎将其替换成一个值。

text/template 与 html/template 的区别

text/template 是 Golang 标准库,实现数据驱动模板以生成文本输出,可理解为一组文本按照特定格式嵌套动态嵌入另一组文本中。

官网 :  https://pkg.go.dev/text/template

html/template 实现了数据驱动的模板,以便在代码注入过程中安全地生成 HTML 输出。它提供了与包 text/template 相同的接口,只要输出是 HTML,就应该使用它来代替 text/template

官网 :  https://pkg.go.dev/html/template