Web 模板就是预先设计好的 HTML 页面,它可以被模板引擎反复的使用,来产生 HTML 页面
go 语言的标准库提供了 text/template,html/template两个模板库,大多数 Go 的 Web 框架都使用这些库作为 默认的模板引擎。
go 主要使用的是 text/template,HTML 相关的部分使用了 html/template,是个混合体。
模板可以完全无逻辑,但又具有足够的嵌入特性,和大多数模板引擎一样,Go Web 的模板位于无逻辑和嵌入逻辑之间的某个地方。
模板必须是可读的文本格式,扩展名任意。对于 Web 应用通常就是 HTML。里面会内嵌一些命令(叫做 action)
text/template 是通用模板引擎,html/template 是HTML 模板引擎 action 位于双层花括号之间:{{.}}这里的,就是一个action,它可以命令模板引擎将其替换成一个值。
package main
import (
"net/http"
"text/template"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
template, _ := template.ParseFiles("./templates/index.html")
template.Execute(w, "hi ...")
})
http.ListenAndServe(":80", nil)
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<span style="color: red;">{{.}}</span>
</body>
</html>