本文介绍go语言中的模板template渲染
文章目录
1. 渲染模板
1.1 模板路径
相对路径
相对路径都是基于 $GOPATH/src/
例如 ./index.html
的路径将被解析为$GOPATH/src/index.html
绝对路径没什么好说的,写对地址就好
1.2 模板渲染的方法
模板渲染使用方法
template.ParseFiles
http.HandleFunc("/temp", func(writer http.ResponseWriter, request *http.Request) {
t := template.Must(template.ParseFiles("E:/goproject/src/gostudy/temp/index.html"))
data := struct{
Name string
}{
"zhangsan"
}
t.Execute(writer, data) //执行模板的merger操作
})
http.ListenAndServe(":8080", nil)
2. 变量解析
假设定义结构体如下
import (
"html/template"
"net/http"
)
type Test struct {
HTML string
SafeHTML template.HTML
Title string
Path string
Dog Dog
Map map[string]string
}
type Dog struct {
Name string
Age int
}
data := Test{
HTML: "<h1>一级标题</h1>",
SafeHTML: template.HTML("<h1>安全的标题</h1>"),
Title: "会被转义的斜杠 \"\\\" ",
Path: "/dashboard/settings",
Dog: Dog{
"大黄", 6},
Map: map