Go语言内置了 text/template 和 html/template两个模板库,专门用于处理网页html模板。

html/template 是在 text/template 模板库的基础上增加了对html输出的安全处理,主要目的是为了防止被攻击。

下面通过一个例子介绍template的用法。

模版引擎使用流程:

编写模版代码

导入包

加载模版代码

根据模版参数渲染模版

1.快速入门例子

1.1.编写模版代码

将下面模版代码保存至views/demo.tpl文件中, 文件后缀名随意。

{{define "demo"}}

昵称: {{.Name}},

{{- if .IsWin}}

恭喜,大吉大利,今晚吃鸡!

{{- else}}

遗憾,鸡被吃光了!

{{- end}}

{{- end}}

define "模板名" 用于定义子模板,后面渲染模板会用到这个名字。

提示: 大家可以先跳过模版语法的细节,先了解大概怎么用,后面的章节会详细介绍模版语法。

1.2.导入包

import "text/template"

提示: 本文主要以text/template为例,如果要使用html/template直接替换包名就行,他们接口一样。

1.3.加载模版代码

// 加载模版代码,并且创建template对象t

// template.ParseGlob 函数加载views目录下的所有tpl为后缀的模版文件

// template.Must函数主要用于检测加载的模版有没有错误,有错误输出panic错误,并且结束程序。

t := template.Must(template.ParseGlob("./views/*.tpl"))

1.4.根据模版参数渲染模版

定义模版参数:

//这里定义一个struct类型的模版参数,实际上模版可以是任意类型数据

type GameStatus struct {

Name string

IsWin bool

}

提示: 因为只能传入一个模版参数,如果想传入多个模版参数,可以使用map或者struct类型。

初始化模板参数, 这里初始化一个参数数组,下面用于循环渲染模板。

var userStatus = []GameStatus{

{"大春", true},

{"NiuBee", false},

{"球球", true},

}

下面是根据userStatus 数组循环渲染模板

for _, u := range userStatus {

//根据参数u, 渲染命名为demo的模板,并且将渲染结果打印到标准输出

err := t.ExecuteTemplate(os.Stdout, "demo", u)

if err != nil {

log.Println("executing template:", err)

}

}

输出结果:

昵称: 大春,

恭喜,大吉大利,今晚吃鸡!

昵称: NiuBee,

遗憾,鸡被吃光了!

昵称: 球球,

恭喜,大吉大利,今晚吃鸡!

说明:根据不同的模版参数,渲染模版输出不同的页面内容,就是模版引擎的主要工作,目的是简化html模版输出工作。

golang 模板引擎 html,Golang模板引擎快速入门教程相关推荐

  1. 认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

    认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多 ...

  2. Android 2D游戏引擎AndEngine快速入门教程

    Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎.该引擎代码开源,并且可以免费使用.本书详细讲解如何使用AndEngine引 ...

  3. ue4怎么用虚幻商城场景_【更新】UE4虚幻引擎野外场景制作零基础入门教程

    原标题:[更新]UE4虚幻引擎野外场景制作零基础入门教程 作为一套零基础入门教程,可以帮助虚幻4引擎的新手了解到环境制作流程和相关软件的配合.本教学适合零基础入门用户,不适合有一定经验的UE使用者. ...

  4. .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

    一.前言 本篇开发环境? 1.操作系统: Windows 10 X64 2.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core 下 ...

  5. .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)

    一.前言 本篇开发环境? 1.操作系统:CentOS7(因为ken比较偏爱CentOS7) 2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识 1.了解如何通过Hyper ...

  6. webpack快速入门教程

    webpack快速入门教程 1.webpack 介绍 什么是webpackhttps://www.webpackjs.com/ Webpack是一个模块打包器(bundler) 在Webpack看来, ...

  7. neon 指令 c语言,Neon指令集优化快速入门教程

    Neon指令集优化快速入门教程 Neon指令集优化快速入门教程 文章目录 1. Neon是什么? 2.Neon为什么速度快 3. Neon基础概念 4. Neon的C语言接口 C语言程序中集成Neon ...

  8. Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解

    Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解 前言 流程设计器集成 整体流程图 流程节点说明 第一审核人节点:实际设置审核人 配置信息 说明 第二审核人:参数 ...

  9. netbeans linux 教程,NetBeans IDE Ruby 快速入门教程

    NetBeans IDE Ruby 快速入门教程 本教程提供了在 NetBeans IDE 中开发 Ruby 应用程序的快速入门指南.本教程介绍如何使用 IDE 的 Ruby 支持来执行一些典型的应用 ...

  10. 计算机代码新手入门教程,VJPAGE微简代码生成器新手快速入门教程

    VJPAGE微简代码生成器新手快速入门教程: 第一步:新建项目 打开主菜单,文件->新建项目,输入项目名称:"我的项目",选择Jquery作为默认框架.单击确定按钮 第二步: ...

最新文章

  1. python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫
  2. Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount
  3. 使用Celery踩过的坑
  4. boost::type_erasure::deduced相关的测试程序
  5. hdu 4143 A Simple Problem 数论
  6. atom-design(Vue.js移动端组件库)手势组件介绍
  7. 35修改tomcat端口
  8. JVM调优思路、订单秒杀jvm调优案例
  9. Embree:照片级光线追踪内核
  10. flink在k8s上的部署和使用教程
  11. 在Html5中与服务器交互
  12. react项目案例_教程28——使用 react-rewired 配置基本的环境(项目)
  13. java构造器基本语法_Java语言中的定义变量、构造函数
  14. spring boot介绍及使用详解
  15. python读取并可视化npy格式的深度图文件以及将其保存为jpg图片的方法
  16. 旅行商问题(回溯算法)
  17. 要重复多少次变成潜意识_量变到质变,首先要做的是不断重复
  18. 按照斗地主的规则,完成洗牌发牌的动作
  19. 连续时间正弦信号和离散时间正弦信号
  20. 百度apollo自动驾驶planning代码学习-Apollo\modules\planning\constraint_checker\CollisionChecker类代码详解

热门文章

  1. 增量式PID的P和I怎么理解(一)
  2. js实现页面元素的拖拽
  3. 我的偶像——黄鑫的成长
  4. Mac部分基础故障解决
  5. 手机端表格怎么做横向滑动, 滑动时不影响上方结构
  6. 连续7年领跑!在华为云桌面,藏了一盘数字办公的大棋
  7. 柴米油盐酱醋茶都是姓,为什么柴姓有130多万,酱姓却不足百人?
  8. 【120】男士减肥从肚子开始
  9. ESXi默认本地用户介绍
  10. golang实战-nsq集群入门与坑