发布时间:2024-11-05 16:23:16
{{.Content}}
``` 在这个模板中,我们使用双大括号 `{{}}` 来插入动态数据。`.Title`、`.Heading` 和 `.Content` 是我们所定义的模板变量,稍后我们将在代码中将其赋值。 接下来,我们可以使用 Golang 的 template 包来解析和执行这个模板: ```go package main import ( "fmt" "html/template" "os" ) type Page struct { Title string Heading string Content string } func main() { page := Page{ Title: "Golang 渲染静态 HTML", Heading: "欢迎来到 Golang 模板引擎", Content: "这里是一段示例内容。", } tmpl, err := template.ParseFiles("index.html") if err != nil { fmt.Println(err) os.Exit(1) } err = tmpl.Execute(os.Stdout, page) if err != nil { fmt.Println(err) os.Exit(1) } } ``` 我们首先定义了一个名为 `Page` 的结构体,其中包含了模板中的三个变量:`Title`、`Heading` 和 `Content`。然后,我们在 `main` 函数中创建了一个 `Page` 对象,并赋予其相应的值。 接下来,我们使用 `template.ParseFiles` 函数来加载模板文件,并使用 `tmpl.Execute` 函数将数据渲染到模板中。在这个例子中,我们将渲染结果输出到标准输出,但你也可以将其保存到文件或发送给 HTTP 响应。 ## Golang 模板引擎的其他功能 除了基本的变量渲染之外,Golang 模板引擎还提供了其他一些强大的功能,例如: ### 控制结构 模板引擎允许我们使用条件语句、循环语句等控制结构来根据不同的条件渲染不同的内容。 ```html {{if .ShowContent}}{{.Content}}
{{end}} ``` 上面的示例代码中,只有当 `.ShowContent` 为真时才会渲染 `` 元素。 ### 嵌套模板 我们可以将多个模板组合在一起以实现复用和层次化的效果。在模板中使用 `{{template}}` 标签引用其他模板,并传递相应的参数。 ```html {{define "header"}}