Go语言WEB开发[html/template包]
Go语言Web开发
Go语言提供了html/template包来支持模板渲染。Go提供的html/template包对HTML模板提供了丰富的模板语言,主要用于Web应用程序。
模板中的变量
模板中的变量通过{{.}} 来访问。
{{.}} 称为管道和root。
在模板文件内,{{.}}代表当前变量,即在非循环体内,{{.}}就代表传入的那个变量。
‘模板中使用{{/* comment */}} 来进行注释’
Golang渲染template的时候,可以在模板文件中读取变量内的值并渲染到模板里。有两个常用的传入类型。
- 一是struct,在模板内可以读取该struct的内容。
- 二是map[string]interface{},在模板内可以使用key来进行渲染。
举个例子:
定义了有一个结构体 user
type user struct {username,userid stringage int
}u1:=user{username: "goweb",userid: "1024",age: 18,}
}
在模板中要获取数据----
{{.}}{{.username}}{{.userid}}{{.age}}
在web页面中显示的数据:
{goweb 1024 18}
假如定义了一个map
m := make(map[string]interface{})m["name"] = "小花"m["age"] = 18
//获取数据
//{{.}}{{.name}}{{.age}}
在web页面中显示的数据:
{小花 18}
在模板中还可以定义变量,变量初始化之后就可以在go提供的模板文件中调用
{{$MyUserName:="七七"}}
{{$MyUserName}}
在web页面上显示
七七
模板中的逻辑判断
golang模板支持if判断,
格式如下:
{{if .condition}}{{end}}
当.condition是bool类型时,值为true表示执行。
当.condition是string类型时,值非空表示执行。此模板也支持if…else if嵌套
{{if .condition}}{{else if .condition}}{{end}}
常用的内置函数
例如:
m := make(map[string]interface{})m["name"] = "小花"m["age"] = 18{{if eq .name .m}}ok:账号名一致{{else if ne .name .m }}err:账号名不一致{{end}}
循环遍历
Golang的template支持range循环来遍历map、slice中的内容,语法格式如下所示。
//在这个range循环内,遍历数据通过\$index和\$value来实现
{{range $index,$value:=.slice}}{{end}}
//这种方式无法访问到$index和$key的值,需要通过{{.}}来访问对应的$value。这种情况下,在循环体内,外部变量需要使用{{$.}}来访问。{{range .slice}}{{end}}
这感觉就像 theamleaf,treemarker,JSTL
这要手动写起来就很麻烦,不如我们来看几个开源的goweb框架
根据框架进行开发,省时省力呀.后去会去瞅一下这些框架;
Go语言WEB开发[html/template包]相关推荐
- go语言web开发入门之多路复用器(multiplexer)
1.简介 在go语言web开发中,请求到达服务器时,多路复用器(multiplexer)会对请求进行检查,并将请求重定向到正确的处理器进行处理. 处理器在接收到多路复用器转发的请求之后,会从请求中取出 ...
- go语言web开发系列之五:gin用zap+file-rotatelogs实现日志记录及按日期切分日志
一,安装需要用到的库: 1,安装zap日志库: liuhongdi@ku:/data/liuhongdi/zaplog$ go get -u go.uber.org/zap 2,安装go-file-r ...
- 易语言WEB开发教程3 模块化开发-常量
模块化开发是开发大型项目重要的方式 1确定项目模块目录 易语言新建一个动态库工程 保存在一个目录里 2 设置扩展目录 如图 注意 只有用本支持库打开源码后 易语言工具菜单才会有扩展菜单 选择你的源码所 ...
- html是面向对象的开发语言,Web开发常用的6大编程语言和优势
Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色,所有用户终端产品与视觉和交互有关的部分,都是Web前端工程师的专业领域.Web开发常用的6大编程语言和优势你知道多少,北大青鸟的老师带您 ...
- 易语言WEB开发支持库正式发布
WEB开发支持库 (2.191118#51版) 本支持库实现了开发CGI ISAPI程序支持支持20个扩展类别与库定义数据类型 每类别最多25个函数 超出函数占用下个类别序号地址 全局类别与库 ...
- go语言web开发入门之使用html/template操作模板
1.简介 模板包(html/template)实现了数据驱动的模板,以便在代码注入过程中安全地生成HTML输出. 它提供了与包文本/模板相同的接口,只要输出是HTML,就应该使用它来代替文本/模板. ...
- GO 语言 Web 开发实战一
xdm,咱今天分享一个 golang web 实战的 demo go 的 http 包,以前都有或多或多的提到一些,也有一些笔记在我们的历史文章中,今天来一个简单的实战 HTTP 编程 Get 先来一 ...
- Go语言Web开发GoFrame框架搭建
项目介绍 一款 Go 语言基于GoFrame.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可 ...
- 25. Python语言 Web 开发 之 Socket 编程 · 第一章 UDP发送与接收数据
UDP发送与接收数据 本章主题 关键词 前导: 计算机网络的发展及基础网络概念 两台电脑的通信 IP地址介绍及分类 IP地址与IP协议 Windows 和 Linux 查看网卡信息 IP地址分类 以太 ...
最新文章
- opencv + python3 利用ros 的 cv_bridge 传送图像消息的一种替代方法
- 俞军:产品经理必备的2个模型
- 如何定制化SAP Spartacus的页面布局
- ora-00955: 名称已由现有对象使用_ai使用路径的方法是什么?ai怎么使用路径查找器?...
- js怎么把按钮往下移_Vue.js 实现计算器
- mac terminal ssh client shuttle 免输密码
- 【论文写作】招聘系统总体流程图如何画
- 只做两个龅牙门牙_孔子画像中的门牙格外突出,画师为何不给圣人开美颜?...
- 汇编3-返回以及优化
- 【文末送书】在科研路上,大家有什么经验教训?
- Mesos资源调度与管理的深入分享与交流
- CPLEX案例教程推荐
- CAD绘图的规范要点
- 偏远的时代covid 19如何迎接下一个技术变革
- SReng日志扫描动画教程
- 数据归档神器-pt-archiver
- 算法之美 - 电子书下载(高清版PDF格式+EPUB格式)
- 外文版计算机科学期刊,计算机期刊大全(国外英文资料).doc
- 学python吧-Python为什么这么厉害? 不想成为专业码农? 来学习Python吧!
- uniapp开发h5微信授权登录(详细教程)