gin框架学习记录——HTML模板渲染

基础渲染

注意:
//需要提前配置模板的文件
r.LoadHTMLGlob("htmls/*")

//html页面模板渲染
r.GET("/userhtml", func(a *gin.Context) {
	//
	userdata := &User{
		Name:  "梁鑫",
		Age:   21,
		Email: "18393900549@163.com",
		Phone: "18396900549",
	}
	a.HTML(200, "user.html", userdata)
})

//html页面里面接收数据
<h2>这是用户信息页面</h2>
<br>
姓名:<h3>{{.Name}}</h3>
<br>
年龄:<h3>{{.Age}}</h3>
<br>
邮箱:<h3>{{.Email}}</h3>
<br>
电话:<h3>{{.Phone}}</h3>
<br>

模板文件分为前后台多级目录时的处理

//首先是模板文件加载
r.LoadHTMLGlob("htmls/*")变为r.LoadHTMLGlob("htmls/**/*")

模板文件原来的结构:htmls/文件变为htmls/index 和htmls/admin

html文件的首尾需要加上:
{{define "admin/index.html"}}或者{{define "index/index.html"}}
前端页面内容
{{end}}

//html页面模板渲染
r.GET("/userhtml", func(a *gin.Context) {
	//
	userdata := &User{
		Name:  "梁鑫",
		Age:   21,
		Email: "18393900549@163.com",
		Phone: "18396900549",
	}
	a.HTML(200, "admin/user.html", userdata)//这里的目录与define中相同
})

模板文件里面的操作

定义变量
{{$user := .Name}}

<h4>{{$user}}</h4>

比较函数
eq  相当于==
ne  相当于!=
lt  小于
le  <=
gt  >
ge  >=

条件判断
{{if ge .score 60}}

{{else if}}

{{else}}

{{end}}

循环遍历
{{range $key,$value := 遍历的数据(比如切片)}}
输出
{{else}}
没有数据的时候会走这里出去
{{end}}

解构结构体
{{with .user}}
<p>{{.user.name}}</p>就可以写成<p>{{.name}}
{{end}}

预定义函数
and  
or
not
len  {{len .user.name}}//使用
index

自定义模板函数

func UnixToTime(timestamp int64) string {
	time := time.Unix(timestamp, 0)
	return time.Format("2006-01-02 15:04:05")
}

func main(){
    r := gin.Default()

    //自定义模板函数  在r和配置模板文件前定义
    r.SetFuncMap(template.FuncMap{
	    "UnixToTime": UnixToTime,
    })
    //需要提前配置模板的文件
    r.LoadHTMLGlob("htmls/*")

    <p>{{UnixToTime .time}}</p>//年月日
}

模板文件中引入公共模板

<!--引入公共样式-->
{{template "common/header.html" .}}

静态资源配置

//配置静态web目录
r.Static("/static","./static" )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值