在 golang 中,有兩種常用的模板引擎:text/template 和 html/template。text/template輕量級,適合生成簡單文本輸出(json/xml)。使用示例:創建模板并用占位符填充,執行模板并用數據填充。html/template適用于呈現 html,提供了轉義、安全和自定義函數功能。使用示例:創建模板并填充占位符,執行模板并傳遞數據。
如何在 Golang 框架中使用模板引擎
簡介
模板引擎允許我們在 web 應用程序中動態地呈現 HTML 內容。在 Golang 中,有幾個流行的模板引擎,如 text/template和 html/template。
使用 text/template
text/template 是 Golang 標準庫中的一個輕量級模板引擎。它適合于生成簡單的文本輸出,如 JSON 或 XML。
package main import ( "fmt" "text/template" ) func main() { // 創建一個模板 tpl, err := template.New("hello").Parse("Hello, {{.}}!") if err != nil { panic(err) } // 執行模板,并用 "Gopher" 填充占位符 str, err := tpl.Execute(os.Stdout, "Gopher") if err != nil { panic(err) } fmt.Println(str) }
登錄后復制
實戰案例
假設我們有一個用戶數據模型,并希望在模板中顯示它。
用戶模型:
type User struct { Name string Age int }
登錄后復制
模板:
{{ .Name }} ({{ .Age }})
登錄后復制
Golang 代碼:
func main() { // 創建一個模板 tpl, err := template.ParseFiles("template.html") if err != nil { panic(err) } // 創建一個用戶 user := &User{Name: "John", Age: 30} // 執行模板,并用用戶數據填充占位符 err = tpl.Execute(os.Stdout, user) if err != nil { panic(err) } }
登錄后復制
使用 html/template
html/template 是一個更強大的模板引擎,專為呈現 HTML 而設計。它提供了轉義、安全和向模板添加自定義函數的功能。
實戰案例
讓我們使用 html/template 創建一個簡單的博客文章詳情頁。
Golang 代碼:
func main() { // 創建一個模板 tpl, err := template.ParseFiles("article.html") if err != nil { panic(err) } // 創建一篇文章 article := &Article{
登錄后復制