gin 是一个基于go http 包上封装的一个web框架, 博客dome展示 www.tnan.top/blog/
模板函数
在gin中也是可以像jinja2一样,自定义模板函数的, 主要用于封装模板时 对模板变量的操作,如将两个模板变量相加, 模板变量字符串切割等操作
app := gin.Default()
//添加自定义的模板函数
app.SetFuncMap(template.FuncMap{"stringadd": uitls.StringAdd,
"timecut": uitls.TimeCut,
"safe": uitls.Safe,
"truestring": uitls.TrueString,
"urladd": uitls.UrlAdd,
})
在gin 中如果HTML渲染时的数据是HTML标签数据的话,那么它会将这些数据当做字符串来对待,会在这些数据用 " " 进行渲染, 这时候就需要用到template 中的 template.HTML 进行转换了,因为gin 中没有像jinja2 模板引擎的 safe 函数,所以,可以自定义一个 safe 模板函数
自定义404处理函数
在web开发中,404是常见的一个问题,当出现404时,gin 默认会返回 404 page not found
这个返回页面并不好看,我们可以使用 NoRoute
app := gin.Default()
//自定义404处理函数
app.NoRoute(controllers.NoResponse)
自定义处理返回404 函数
注册HTML和css等静态文件路径
//注册html目录
app := gin.Default()
app.LoadHTMLGlob("templates/*") // 会从当前路径下找templates 文件夹
//注册静态资源目录
app.Static("static", "./static")
在处理函数 返回 时会 从 LoadHTMLGlob
注册的路径下找 html文件, 如
此时,details.html 会到注册路径下找
静态文件static app.Static("static", "./static")
第一个 static
是当遇到以 static 开头的请求的时候就将它视为 获取静态文件的请求, 第一个 static
可以看做是 路径请求 api , 第二个 ./static
是当遇到静态文件请求的时候去哪里获取这个文件,./static
是当前路径下的 static 目录