Go 语言Web开发-模板(template)快速入门教程

本文介绍了Go语言的模板包,特别是text/template和html/template的使用,包括模板定义、解析、数据绑定、执行过程,以及变量、条件判断、循环、管道、函数和模板嵌套等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模板基础

Go语言模板包是用于生成文本输出的工具,它通过解析模板文本并结合数据生成最终的输出文本。模板语法简洁而强大,包括模板标记、变量输出、控制结构和模板函数等。模板对象表示已解析和编译的模板,可以执行并输出最终文本。模板包的工作原理主要包括模板解析、数据传递和模板执行三个步骤。

text/templatehtml/template 是 Go 语言模板包的两个子包,用于生成文本输出和 HTML 输出。

  • text/template 用于生成任意文本格式的模板,不会自动对输出内容进行 HTML 转义。
  • html/template 专门用于生成 HTML 文档的模板,会自动对输出内容进行 HTML 转义,防止 XSS 攻击。

在浏览器中展示 text/template 的输出时,浏览器也会进行 HTML 转义。这是因为浏览器默认会将接收到的文本内容视为 HTML,从而进行相应的转义处理。因此,无论是 text/template 还是 html/template 生成的内容,在浏览器中显示时都会经过 HTML 转义。所以一般推荐使用

text/template

模板使用

  1. 导入模板库
import "text/template"
  1. 定义模板
const textTemplate = "Hello, {
   {.Name}}! Today is {
   {.Day}}."

或准备模板文件index.tmpl

Hello, {
  {.Name}}! Today is {
  {.Day}}.
  1. 解析模板

解析定义的模板

tmpl, err := template.New("text_template").Parse(textTemplate)
if err != nil {
   
    panic(err)
}

或者解析本地准备好的模板文件index.tmpl

tmpl, err := template.ParseFiles("index.tmpl")
if err != nil {
   
    panic(err)
}
  1. 准备数据
data := struct {
   
    Name string
    Day  string
}{
   
    Name: "Alice",
    Day:  "Monday",
}
  1. 执行模板
err = tmpl.Execute(os.Stdout, data)
if err != nil {
   
    panic(err)
}

完成代码示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值