在Go語言中,可以使用html/template
和text/template
包來實現動態渲染模板。這兩個包都提供了豐富的功能,可以幫助你輕松地實現動態渲染。下面是一個簡單的示例,展示了如何使用Go語言的模板引擎實現動態渲染。
首先,創建一個名為template.html
的模板文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Title}}</title>
</head>
<body>
<h1>{{.Header}}</h1>
<p>{{.Content}}</p>
</body>
</html>
接下來,編寫Go代碼來讀取模板文件并渲染它:
package main
import (
"bytes"
"fmt"
"html/template"
"log"
)
type PageData struct {
Title string
Header string
Content string
}
func main() {
// 讀取模板文件
tmpl, err := template.ParseFiles("template.html")
if err != nil {
log.Fatal(err)
}
// 創建一個PageData實例,用于傳遞給模板
data := PageData{
Title: "Dynamic Rendering Example",
Header: "Welcome to Go Templates",
Content: "This is an example of dynamic rendering using Go templates.",
}
// 創建一個緩沖區,用于存儲渲染后的HTML
var buf bytes.Buffer
// 將模板渲染到緩沖區
err = tmpl.Execute(&buf, data)
if err != nil {
log.Fatal(err)
}
// 輸出渲染后的HTML
fmt.Println(buf.String())
}
在這個示例中,我們首先定義了一個名為PageData
的結構體,用于存儲要傳遞給模板的數據。然后,我們使用template.ParseFiles
函數讀取模板文件,并使用template.Execute
方法將數據渲染到緩沖區。最后,我們將渲染后的HTML輸出到控制臺。
你可以根據需要修改PageData
結構體的字段,以實現動態渲染不同的模板內容。