您现在的位置是:群英 > 开发技术 > 编程语言
Go语言中模板引擎有哪些,应该如何使用
Admin发表于 2022-06-16 17:03:181120 次浏览
这篇文章给大家分享的是“Go语言中模板引擎有哪些,应该如何使用”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“Go语言中模板引擎有哪些,应该如何使用”吧。


下面由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。

完!


关于“Go语言中模板引擎有哪些,应该如何使用”的内容就介绍到这,感谢各位的阅读,相信大家对Go语言中模板引擎有哪些,应该如何使用已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: Go语言
相关信息推荐
2022-09-05 17:43:51 
摘要:这篇文章主要介绍了Yii 框架入口脚本,结合实例形式分析了Yii 框架入口脚本基本功能、原理及相关操作技巧,需要的朋友可以参考下
2022-09-24 17:13:20 
摘要:这篇文章通过实例代码介绍了PHP实现JWT的Token登录认证的方式,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-09-03 17:49:38 
摘要:本篇文章带大家一起了解一下Bootstrap网格布局中网格列的排序与偏移问题,看看网格列如何排序和偏移,希望对大家有所帮助!
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部