gin 框架模板渲染

437 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、下载gin软件包

go get -u github.com/gin-gonic/gin

2、引入代码

import "github.com/gin-gonic/gin"

3、引入 net/http 包(尽量引用)

import "net/http"

4、配置路由,新建main.go

5、渲染模板,定义路由

router.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "default/index.html", map[string]interface{}{ "title": "前台首页" }

6、新建html

{{template default/index.html}} html内容 {{end}}

内容使用{{.name}}来展示数据 如果是数组,则使用循环{{range key,key,vlaue:=.name}} {{$vlaue}} {{end}}

如果为结构体: {{range key,key,vlaue:=.name}} {{$vlaue.结构体中的名字}} {{end}}

7、比较函数

eq 如果 arg1 == arg2 则返回真
ne 如果 arg1 != arg2 则返回真
lt 如果 arg1 < arg2 则返回真
le 如果 arg1 <= arg2 则返回真
gt 如果 arg1 > arg2 则返回真 
ge 如果 arg1 >= arg2 则返回真

8、条件判断

{{if pipeline}} 
T1
{{end}} 
{{if pipeline}}
  1 
{{else}} 
  0
{{end}}
{{if pipeline}}
  1
  {{else if pipeline}}
  0
  {{end}}
  {{if gt .score 60}}
  及格 {{else}} 不及格
  {{end}}

9、预定义函数 预定义的全局函数如下:

and 函数返回它的第一个 empty 参数或者最后一个参数;就是说"and x y"等价于"if x   then y else x";所有参数都会执行;

or  返回第一个非 empty 参数或者最后一个参数; 亦即"or x y"等价于"if x then x     else y";所有参数都会执行;

not 返回它的单个参数的布尔值的否定 

len 返回它的参数的整数类型长度 index 执行结果为第一个参数以剩下的参数为索引/键指向     的值; 如"index x 1 2 3"返回 x[1][2][3]的值;每个被索引的主体必须是数组、切     片或者字典。

print 即 fmt.Sprint printf 即 fmt.Sprintf println 即 fmt.Sprintln html 返回与其参数的文本表示形式等效的转义 HTML。 这个函数在 html/template 中不可用。

urlquery 以适合嵌入到网址查询中的形式返回其参数的文本表示的转义值。这个函数在     html/template 中不可用。 

js 返回与其参数的文本表示形式等效的转义 JavaScript。

call 执行结果是调用第一个参数的返回值,该参数必须是函数类型,其余参数作为调用该函数     的参数; 如"call .X.Y 1 2"等价于 go 语言里的 dot.X.Y(1, 2); 其中 Y 是函数    类型的字段或者字典的值,或者其他类似情况; 
call 的第一个参数的执行结果必须是函数类型的值(和预定义函数如print 明显不同);该函数类型值必须有 12 个返回值如果有 2 个则后一个必须是error 接口类型;
如果有 2 个返回值的方法返回的 errornil,模板执行会中断并返回给调用模板执行者该错误;

10、自定义模板 路由,写在静态路由(加载模板)上面

router.SetFuncMap(template.FuncMap{ "formatDate": formatAsDate, })

用法:

{{.now | formatDate}} 或者 {{formatDate .now }}