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 string
	age 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框架

在这里插入图片描述

根据框架进行开发,省时省力呀.后去会去瞅一下这些框架;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值