Go語言的模板引擎主要用于處理HTML、XML等標記語言,以便生成動態的文本輸出。Go標準庫中的text/template
和html/template
包提供了強大的模板功能。這里是一個簡單的示例,說明如何使用Go語言的模板引擎:
package main
import (
"fmt"
"os"
"text/template"
)
const tpl = `
<!DOCTYPE html>
<html>
<head>
<title>{{.Title}}</title>
</head>
<body>
<h1>{{.Header}}</h1>
<p>{{.Content}}</p>
</body>
</html>
`
這里,我們定義了一個簡單的HTML模板,其中包含一個標題(Title)、一個頭部(Header)和一個內容(Content)占位符。
type PageData struct {
Title string
Header string
Content string
}
tmpl, err := template.New("webpage").Parse(tpl)
if err != nil {
fmt.Println("Error parsing template:", err)
return
}
PageData
實例,并填充數據:data := PageData{
Title: "My Webpage",
Header: "Welcome to my website!",
Content: "This is the main content of my webpage.",
}
err = tmpl.Execute(os.Stdout, data)
if err != nil {
fmt.Println("Error executing template:", err)
}
將以上代碼片段組合在一起,完整的程序如下:
package main
import (
"fmt"
"os"
"text/template"
)
const tpl = `
<!DOCTYPE html>
<html>
<head>
<title>{{.Title}}</title>
</head>
<body>
<h1>{{.Header}}</h1>
<p>{{.Content}}</p>
</body>
</html>
`
type PageData struct {
Title string
Header string
Content string
}
func main() {
tmpl, err := template.New("webpage").Parse(tpl)
if err != nil {
fmt.Println("Error parsing template:", err)
return
}
data := PageData{
Title: "My Webpage",
Header: "Welcome to my website!",
Content: "This is the main content of my webpage.",
}
err = tmpl.Execute(os.Stdout, data)
if err != nil {
fmt.Println("Error executing template:", err)
}
}
運行此程序,將在控制臺輸出一個包含指定標題、頭部和內容的HTML頁面。你可以根據需要修改模板字符串和結構體字段,以滿足你的需求。