go 语言模板解析与执行

go 语言通过 parseFiles、parseGlob、parse 三个函数来解析模板 :

parseFiles()

func ParseFiles(filenames ...string) (*Template, error)

功能 : 解析指定的一个或者多个模板,返回一个模板结构体,后续可被执行。

parseGlob()

使用模式匹配来解析匹配的模板文件 :

package main

import (
	"net/http"
	"text/template"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		template, _ := template.ParseGlob("./templates/*.html")
		template.Execute(w, "hi ...")
	})
	http.ListenAndServe(":80", nil)
}

parse()

可以解析字符串模板,上面2个函数最终调用 parse()。

Must() 函数

Must 函数可以包裹一个函数,返回到一个模板的指针 和 一个错误。如果错误不为 nil,那么就 panic。

执行模板

Execute

参数是 ResponseWriter、数据,适用于 : 单模板

ExecuteTemplate

参数是 ResponseWriter、模板名称、数据,适用于 : 多模板