发布时间:2024-12-22 23:06:25
{{.Content}}
` ``` 在这个例子中,我们定义了一个包含 h2 和 p 标签的模板。它有两个参数:Title 和 Content,我们可以通过传入一个数据结构来动态渲染这个模板。 ```golang type Page struct { Title string Content string } func renderTemplate(tpl string, data interface{}) (string, error) { t, err := template.New("myTemplate").Parse(tpl) if err != nil { return "", err } buf := new(bytes.Buffer) err = t.Execute(buf, data) if err != nil { return "", err } return buf.String(), nil } func main() { page := Page{ Title: "Golang Template", Content: "构建动态网页的强大工具", } html, err := renderTemplate(tpl, page) if err != nil { fmt.Println("Failed to render template:", err) return } fmt.Println(html) } ``` 在这个例子中,我们定义了一个 Page 结构体,然后通过 renderTemplate 函数来渲染模板。模板中的{{.Title}}和{{.Content}}会被实际数据填充,最后生成 HTML。 ## 条件和循环控制 在Golang Template中,我们可以使用条件和循环来控制模板的渲染逻辑。例如,下面的模板演示了如何使用条件语句来控制模板内容的显示: ```golang const tpl = ` {{if .ShowTitle}}{{.Content}}
` ``` 在这个例子中,如果传入的数据结构的 ShowTitle 字段为 true,那么标题会被渲染出来;否则只渲染内容。 类似地,我们也可以使用 range 来对数组或切片进行迭代。下面的例子演示了如何使用 range 来渲染一个列表: ```golang const tpl = `{{.Content}}
{{template "footer"}} ` ``` 在这个例子中,我们定义了一个头部和尾部模板,并将它们命名为"header"和"footer"。然后,在页面的模板中使用{{template}}标签引入它们。 ## 总结 通过本文介绍,我们掌握了Golang Template的基础知识,并学会了如何使用它来构建动态网页。Golang Template 提供了简洁而灵活的语法,能够满足大多数动态网页的需求。希望本文能够帮助到你,让你在Golang Web开发中更加高效地使用模板引擎。