golang 模板引擎 html,Golang模板引擎快速入门教程
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模板引擎快速入门教程相关推荐
- 认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程
认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多 ...
- Android 2D游戏引擎AndEngine快速入门教程
Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎.该引擎代码开源,并且可以免费使用.本书详细讲解如何使用AndEngine引 ...
- ue4怎么用虚幻商城场景_【更新】UE4虚幻引擎野外场景制作零基础入门教程
原标题:[更新]UE4虚幻引擎野外场景制作零基础入门教程 作为一套零基础入门教程,可以帮助虚幻4引擎的新手了解到环境制作流程和相关软件的配合.本教学适合零基础入门用户,不适合有一定经验的UE使用者. ...
- .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
一.前言 本篇开发环境? 1.操作系统: Windows 10 X64 2.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core 下 ...
- .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
一.前言 本篇开发环境? 1.操作系统:CentOS7(因为ken比较偏爱CentOS7) 2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识 1.了解如何通过Hyper ...
- webpack快速入门教程
webpack快速入门教程 1.webpack 介绍 什么是webpackhttps://www.webpackjs.com/ Webpack是一个模块打包器(bundler) 在Webpack看来, ...
- neon 指令 c语言,Neon指令集优化快速入门教程
Neon指令集优化快速入门教程 Neon指令集优化快速入门教程 文章目录 1. Neon是什么? 2.Neon为什么速度快 3. Neon基础概念 4. Neon的C语言接口 C语言程序中集成Neon ...
- Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解
Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解 前言 流程设计器集成 整体流程图 流程节点说明 第一审核人节点:实际设置审核人 配置信息 说明 第二审核人:参数 ...
- netbeans linux 教程,NetBeans IDE Ruby 快速入门教程
NetBeans IDE Ruby 快速入门教程 本教程提供了在 NetBeans IDE 中开发 Ruby 应用程序的快速入门指南.本教程介绍如何使用 IDE 的 Ruby 支持来执行一些典型的应用 ...
- 计算机代码新手入门教程,VJPAGE微简代码生成器新手快速入门教程
VJPAGE微简代码生成器新手快速入门教程: 第一步:新建项目 打开主菜单,文件->新建项目,输入项目名称:"我的项目",选择Jquery作为默认框架.单击确定按钮 第二步: ...
最新文章
- python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫
- Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount
- 使用Celery踩过的坑
- boost::type_erasure::deduced相关的测试程序
- hdu 4143 A Simple Problem 数论
- atom-design(Vue.js移动端组件库)手势组件介绍
- 35修改tomcat端口
- JVM调优思路、订单秒杀jvm调优案例
- Embree:照片级光线追踪内核
- flink在k8s上的部署和使用教程
- 在Html5中与服务器交互
- react项目案例_教程28——使用 react-rewired 配置基本的环境(项目)
- java构造器基本语法_Java语言中的定义变量、构造函数
- spring boot介绍及使用详解
- python读取并可视化npy格式的深度图文件以及将其保存为jpg图片的方法
- 旅行商问题(回溯算法)
- 要重复多少次变成潜意识_量变到质变,首先要做的是不断重复
- 按照斗地主的规则,完成洗牌发牌的动作
- 连续时间正弦信号和离散时间正弦信号
- 百度apollo自动驾驶planning代码学习-Apollo\modules\planning\constraint_checker\CollisionChecker类代码详解