知识分享之Golang——templates常用语法

简介: 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。知识分享系列目前包含Java、Golang、Linux、Docker等等。

知识分享之Golang——templates常用语法

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

  • 系统:windows10
  • 语言:Golang
  • golang版本:1.17

内容

在日常使用Golang进行web项目开发时,我们通常将HTML制作为模板(template)来使用,其中可变的部分通过后端接口进行传值的方式进行动态渲染,我们使用的gin框架可以快速加载template模板,详细使用可以关注我后续的gin学习相关文章。

本节我们主要对于在HTML中进行使用template常用的语法进行整合,便于我们日常快速使用查阅。

1、页面中引用传输过来的变量

<title>{
  { .title}}</title>

其中{ {}}是修饰符,表示这个是template语法,在模板HTML被加载时自动化渲染,这个修饰符可以在gin加载模板文件时修改,例如修改为{%%},后续具体讲解。
其中的点(.)表示这个变量是响应中的变量

2、页面中设置一个变量

{
  {$baseUrl := "http://127.0.0.1"}}

3、设置一个变量用于接受后端接口响应过来的信息

{
  {$baseUrl := .domain}}

4、if判断

{
  { if .lang }}

{
  {end}}


{
  { if .lang}}

{
  {else if .lang}}

{
  {end}}

5、if 非判断

非判断

{
  {if not .变量名}}
{
  {end}}

多对比
and 并且、or 或、eq等于、ne不等于、lt小于、le小于等于、gt大于、ge大于等于、

{
  {if [and/or/eq/ne/lt/le/gt/ge ] .变量名1 .变量2 }}
{
  {end}}

6、循环

快速遍历对象
$i是下标,$v是遍历出来的单个对象

{
  {range $i,$v := .变量集合}}
{
  { $v.变量名}}
{
  {end}}

快速遍历写法,其中中间部分是访问[变量集合]中遍历的每个对象下的相关变量。
注:如果在遍历循环内部中使用外部变量,需要在变量前面加上$,即 $.变量名

{
  {range  .变量集合}}
{
  { .遍历后对象中的某个变量 }}
{
  {end}}

7、声明模板名称

顶部添加,通常模板名称在HTML页面的头和尾部,而HTML代码放在模板内容中。
{ {define "模板名称"}}
// 模板内容

{ {end}}

8、引用模板

{ {template "引用的模板名称" .}}
注意:在结束位置有一个点(.),这样我们可以直接使用引用模板中的变量,通常我们都是带有这个点的。

以上就是我们比较常用的一些语法,未包含的欢迎在留言区进行留言,我将进行补充,感谢。

本文声明:

5330898-d1c72b6c90e378f3.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

目录
相关文章
|
前端开发
react-grapesjs——开源代码学习与修改(初出茅庐)(一)
react-grapesjs——开源代码学习与修改(初出茅庐)
282 0
|
存储 网络协议 文件存储
存储技术之FC 与 iSCSI 尖峰对决
  综述:   2003 年,互联网工程任务组(IETF)批准iSCSI(互联网SCSI)协议后,很多人开始将以太网作为分块存储网络使用(成为“基于IP 的存储”)。一直以来,人们采用iFCP和FCIP 等现有协议发送基于IP 的SCSI 命令行,主要允许FC 存储区域网络(SAN)通过IP 交换数据。凭借iSCSI,SCSI 命令行可以“端对端”地传送到世界各地的以太网中。
2814 0
|
11月前
|
JSON Prometheus Go
Golang模板template
Golang模板template
|
2月前
|
JSON 人工智能 Go
在Golang中序列化JSON字符串的教程
在Golang中,使用`json.Marshal()`可将数据结构序列化为JSON格式。若直接对JSON字符串进行序列化,会因转义字符导致错误。解决方案包括使用`[]byte`或`json.RawMessage()`来避免双引号被转义,从而正确实现JSON的序列化与反序列化。
118 7
|
6月前
|
固态存储 虚拟化 iOS开发
VMware ESXi 6.7U3v macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版)
VMware ESXi 6.7U3v macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版)
436 58
VMware ESXi 6.7U3v macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版)
|
11月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
12月前
|
自然语言处理 Java 测试技术
go语言编程系列(二)
go语言编程系列(二)
|
Unix Go
Golang语言标准库time之日期和时间相关函数
这篇文章是关于Go语言日期和时间处理的文章,介绍了如何使用Go标准库中的time包来处理日期和时间。
444 3
|
存储 机器学习/深度学习 分布式计算
HDFS与网络附加存储(NAS)的比较
【8月更文挑战第31天】
433 0
|
存储 索引 Python
【Python】已解决:IndexError: list index out of range
【Python】已解决:IndexError: list index out of range
1535 1

热门文章

最新文章