go gin使用template Static配置静态文件 返回json 自定义函数 转义 LoadHTMLGlob LoadHTMLFiles

6 篇文章 0 订阅

详细代码git

package main

import (
	"github.com/gin-gonic/gin"
	"html/template"
	"log"
	"net/http"
)

func main() {
	mainGin()
}

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

	//为静态文件做映射,通过 项目url地址/cssjs 访问./static下的静态文件
	r.Static("/cssjs","./static")

	//设置自定义函数
	r.SetFuncMap(template.FuncMap{
		"safe": func(s string) template.HTML {
			return template.HTML(s)
		},
		"sqr": func(i int) int {
			return i * i
		},
	})

	// 读取模板文件1
	// r.LoadHTMLGlob("template/**/*")
	// r.LoadHTMLGlob("./template/**/*")
	//template/**/*似乎不读取template里的文件,template/tmpl转义.html没读到
	// 读取模板文件2
	r.LoadHTMLFiles(
		"./template/tmpl转义.html",
		"./template/tmpl基本语法.go.tmpl",
		"./template/test1/block.tmpl",
		"./template/test1/useblock.tmpl",
		"./template/test1/js.html")

	//处理url请求
	r.GET("/a1", func(c *gin.Context) {
		// 参数1:响应码,参数2:模板名,参数3:要传递给页面的参数
		c.HTML(http.StatusOK, "useblock.tmpl", nil)
	})
	r.GET("/a2", func(c *gin.Context) {
		c.HTML(http.StatusOK, "tmpl转义.html", gin.H{
			"msg1": "<script>alert('msg1')</script>",
			"msg2": "<script>alert('msg2')</script>",
		})
	})

	//返回json方法1,key首字母可以小写
	r.GET("/j1", func(c *gin.Context) {
		c.JSON(http.StatusOK,gin.H{
			"name":"kitty",
			"age":3,
		})
	})

	//返回json方法2,key首字母必须大写
	r.GET("/j2", func(c *gin.Context) {
		// 首字母大写才能显示在页面上,
		type user struct{
			//`json:"usernane"`指定json返回的key 是 username
			Name string	`json:"usernane"`
			//不显示首字母小写的字段
			age int8
			Weight float32
		}
		u:=user{"kitty2",4,1.23}
		//页面显示{"usernane":"kitty2","Weight":1.23}
		c.JSON(http.StatusOK,u)
	})
	r.Run(":8080")
}
//template\tmpl转义.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet"  href="/cssjs/css/a.css">
    <script src="/cssjs/js/jquery.min.js"></script>
</head>
<body>
    <div class='a'>aaaa</div>
    {{.msg1}}<br>
    {{.msg2 | safe}}<br>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值