下面由golang教程栏目给大家介绍Go语言中使用模板引擎,希望对需要的朋友有所帮助!

1 概述

处理响应主体时,最常见的方式就是发送处理好的 HTML 代码,由于需要将数据嵌入到 HTML 中,那么模板引擎(template engine)就是最好的选择。

Go语言中,提供了 html/template 包,实现模板引擎的相关功能。快速使用示例:

main.go

package mainimport (  "html/template"  "log"  "net/http")func main() {  // 设置 处理函数  http.HandleFunc("/", TestAction)   开启监听(监听浏览器请求)  log.Fatal(http.ListenAndServe(":8084", nil))}func TestAction(w http.ResponseWriter, r *http.Request) {  // 解析模板  t, _ := template.ParseFiles("template/index.html")  // 设置模板数据  data := map[string]interface{}{    "User": "小韩说课",    "List": []string{"Go", "Python", "PHP", "JavaScript"},  }  // 渲染模板,发送响应  t.Execute(w, data)}

template/index.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>小韩说课</title></head><body>Hello, {{ .User }}<br>你熟悉的技术:<ul>{{ range .List }}    <li>{{.}}</li>{{end}}</ul></body></html>

执行结果:

执行结果

2 解析模板

函数 template.ParseFiles(filenames ...string) (*Template, error) 可以解析模板文件,并得到模板对象。参数为模板文件。同时会以模板文件的文件名(不包含后缀名)作为模板的名字。

还可以使用 template.New("name").Parse(src string) 来创建模板对象,并完成解析模板内容。

3 应用数据并发送响应

函数 func (t *Template) Execute(wr io.Writer, data interface{}) error 将 data 应用到解析好的模板上,并将输出写入 wr。如果执行时出现错误,会停止执行,但有可能已经写入wr部分数据。

data 数据可以接受任意类型,最常见的类型为:map[string]interface{},通过不同的下标来区分部分的分配数据。在模板中使用 .User.List 来访问分配数据中的 User 和 List。

完!

更多相关文章

  1. 总结 Go 的数据类型
  2. 在使用database/sql时应避免掉进这11个坑 !(Go 数据库)
  3. 关于Golang 全局sql数据库连接
  4. 关于html嵌入xml数据岛如何穿过树形结构关系的问题
  5. php操作XML、读取数据和写入数据的实现代码
  6. XML指南——XML数据岛
  7. XML数据读取方式性能比较(一)
  8. XML数据读取方式性能比较(二)
  9. XML数据查询技术已经成为现今的研究热点

随机推荐

  1. 比较TCP与UDP之间的区别
  2. c# webservice中访问http和https的wsdl以
  3. C语言在屏幕上显示内容
  4. .NET Core2.0小技巧之MemoryCache问题修
  5. .NET CORE如何动态调用泛型解决方法
  6. C#中委托和匿名委托的具体介绍
  7. asp.net mvc如何动态编译生成Controller
  8. C#中关于匿名委托和Lambda表达式的使用详
  9. web.config 配置文件示例详解
  10. ASP.NET Core中的多语言支持的图文详解