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包]相关推荐

  1. go语言web开发入门之多路复用器(multiplexer)

    1.简介 在go语言web开发中,请求到达服务器时,多路复用器(multiplexer)会对请求进行检查,并将请求重定向到正确的处理器进行处理. 处理器在接收到多路复用器转发的请求之后,会从请求中取出 ...

  2. go语言web开发系列之五:gin用zap+file-rotatelogs实现日志记录及按日期切分日志

    一,安装需要用到的库: 1,安装zap日志库: liuhongdi@ku:/data/liuhongdi/zaplog$ go get -u go.uber.org/zap 2,安装go-file-r ...

  3. 易语言WEB开发教程3 模块化开发-常量

    模块化开发是开发大型项目重要的方式 1确定项目模块目录 易语言新建一个动态库工程 保存在一个目录里 2 设置扩展目录 如图 注意 只有用本支持库打开源码后 易语言工具菜单才会有扩展菜单 选择你的源码所 ...

  4. html是面向对象的开发语言,Web开发常用的6大编程语言和优势

    Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色,所有用户终端产品与视觉和交互有关的部分,都是Web前端工程师的专业领域.Web开发常用的6大编程语言和优势你知道多少,北大青鸟的老师带您 ...

  5. 易语言WEB开发支持库正式发布

    WEB开发支持库 (2.191118#51版) 本支持库实现了开发CGI ISAPI程序支持支持20个扩展类别与库定义数据类型 每类别最多25个函数 超出函数占用下个类别序号地址     全局类别与库 ...

  6. go语言web开发入门之使用html/template操作模板

    1.简介 模板包(html/template)实现了数据驱动的模板,以便在代码注入过程中安全地生成HTML输出. 它提供了与包文本/模板相同的接口,只要输出是HTML,就应该使用它来代替文本/模板. ...

  7. GO 语言 Web 开发实战一

    xdm,咱今天分享一个 golang web 实战的 demo go 的 http 包,以前都有或多或多的提到一些,也有一些笔记在我们的历史文章中,今天来一个简单的实战 HTTP 编程 Get 先来一 ...

  8. Go语言Web开发GoFrame框架搭建

    项目介绍 一款 Go 语言基于GoFrame.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可 ...

  9. 25. Python语言 Web 开发 之 Socket 编程 · 第一章 UDP发送与接收数据

    UDP发送与接收数据 本章主题 关键词 前导: 计算机网络的发展及基础网络概念 两台电脑的通信 IP地址介绍及分类 IP地址与IP协议 Windows 和 Linux 查看网卡信息 IP地址分类 以太 ...

最新文章

  1. opencv + python3 利用ros 的 cv_bridge 传送图像消息的一种替代方法
  2. 俞军:产品经理必备的2个模型
  3. 如何定制化SAP Spartacus的页面布局
  4. ora-00955: 名称已由现有对象使用_ai使用路径的方法是什么?ai怎么使用路径查找器?...
  5. js怎么把按钮往下移_Vue.js 实现计算器
  6. mac terminal ssh client shuttle 免输密码
  7. 【论文写作】招聘系统总体流程图如何画
  8. 只做两个龅牙门牙_孔子画像中的门牙格外突出,画师为何不给圣人开美颜?...
  9. 汇编3-返回以及优化
  10. 【文末送书】在科研路上,大家有什么经验教训?
  11. Mesos资源调度与管理的深入分享与交流
  12. CPLEX案例教程推荐
  13. CAD绘图的规范要点
  14. 偏远的时代covid 19如何迎接下一个技术变革
  15. SReng日志扫描动画教程
  16. 数据归档神器-pt-archiver
  17. 算法之美 - 电子书下载(高清版PDF格式+EPUB格式)
  18. 外文版计算机科学期刊,计算机期刊大全(国外英文资料).doc
  19. 学python吧-Python为什么这么厉害? 不想成为专业码农? 来学习Python吧!
  20. uniapp开发h5微信授权登录(详细教程)

热门文章

  1. 【Pyside6】桌面应用--目录、代码结构设计(附案例)
  2. Matlab一元二次方程求根
  3. Demond Page的原理和作用(By Walle@ARMCE)
  4. 请问set JAVA_OPTS的各项参数是什么意思?
  5. 容器里源码安装apache
  6. 2005年非上海生源高校毕业生就业进沪评分办法
  7. Django 框架快速入门
  8. 受限玻尔兹曼机的基础知识二
  9. 【12.2~12.6周报】面试项目搭建,红黑树,个人线上事故
  10. 使用CNN进行ROI提取(优化代码篇)