引用流程:
1、编写一个go脚本,编写一个html脚本
2、在go代码中声明一个函数,把函数解析成模板,并把函数重新命名成模板名称
3、html就可直接调用模板名称
目录结构:
main.go p6.tmpl
main.go内容
package main import ( "fmt" "html/template" "net/http" ) func f1(w http.ResponseWriter, r *http.Request) { //名称必须与下面的f1一致 //嵌套一个函数,要么赋值一个,要么第二个值必须是error k := func(name string) (string, error) { return name + "Gin框架", nil } //定义模板 //在p6.tmpl编辑 //解析模板 t := template.New("p6.tmpl") //定义一个新的模板名称为p6.tmpl t.Funcs(template.FuncMap{ //固定函数格式 "kua": k, //自定义“kua”必须与同级目录p6.tmpl文件引用的一致 }) _,err := t.ParseFiles("./p6.tmpl") //使用ctrl得知,这里需要两个返回值,所以赋值两个 if err != nil { //错误处理 fmt.Printf("parse template failed,err%v", err) return } name := "Go语言" //声明值 //渲染模板 t.Execute(w, name) //w代表写入,name对应同级目录p6.tmpl文件中的点. } func main() { http.HandleFunc("/", f1) //当请求到/根目录时,处理f1函数 err := http.ListenAndServe(":9000", nil) //监听9000端口号 if err != nil { //错误处理 fmt.Println("HTTP server start failed, err:%v", err) return } }
p6.tmpl内容
<!DOCTYPE html> <html lang="zh-CN"> <head> <title>自定义模板函数</title> </head> <body> {{ kua . }} </body> </html>
运行程序
go run main.go
浏览器访问:
http://127.0.0.1:9000