go template 不转换html标签_GO编程之旅2

本文介绍了Go编程之旅的第二部分,主要探讨了如何处理简单结构的多级嵌套问题,特别是在使用`go template`时。文章详细讲解了`text/template`和`html/template`的区别,强调了后者对于输出安全HTML内容的重要性。此外,还讨论了如何注册自定义函数以及模板中的标识符和变量渲染。接下来,文章转向Gin框架,阐述了如何安装并启动一个简单的HTTP服务,解释了Gin框架的基本结构、运行模式、路由注册以及内置的Logger和Recovery中间件的作用。最后,提到了Engine实现http.Handler接口的事实。
摘要由CSDN通过智能技术生成

GO编程之旅2

简单结构多级嵌套问题

可以使用template模板。

template

Go语言文本模板引擎,提供了两个标准库,接口相同,功能略有不同。

•text/template: 基于模板输出文本内容•html/template: 基于模板输出安全的HTML格式内容,避免了某些注入攻击。

const templateText = `Output 0: {{title .Name1}}Output 1: {{title .Name2}}Output 2: {{.Name3 | title }}`func main(){    funcMap := template.FuncMap{ "title": strings.Title}    tpl,_ := template.New("go-programming-tour").Funcs(funcMap).Parse(template.Text)    data := map[string]string{        "Name1" : "go",        "Name2" : "programming",        "Name3" : "tour",    }    _ = tpl.Execute(os.Stdout,data)}

•{{}} : 标识符,模板内容原样输出。•. : .标识进行模板渲染的变量,可以为任何值。特殊情况会特定处理。•函数调用:通过FuncMap注册了名为title的自定义函数。上述表示了两种模板的处理方法,一个是函数参数后加变量参数,一种通过管道 | 的方式。

gin 框架

安装:go get -u github.com/gin-gonic/gin 启动一个简单的http服务

 func main(){     r := gin.Default()    r.GET("/ping",func(c *gin.Context){        c.JSON(200,gin.H{"message":"pong"})    })    r.Run() }

gin启动分为四大块:

1.默认Engine实例,官方默认提供的Logger和Recovery的中间件创建Engine实例。2.运行模式:表示当前为调试模式,建议在生成环境时切换为发布模式。3.路由注册:表示注册了GET/ping的路由,并输出了其调用方法的方法名。4.运行信息:表示本次启动监听的8080端口,默认为8080。

fcd4da5c86a17814c9531160caebae53.png

两个中间件的作用:

•Logger: 输出请求日志,并标准化日志的格式。•Recovery: 异常捕获,针对每次请求处理进行Recovery处理,防止因为出现panic导致服务崩溃,同时将异常日志的格式标准化。

Engine 实现了http.Handler接口

gin地址[1]

例如:

Go语言编程之旅[2]

References

[1] gin地址: https://gin-gonic.com/[2] Go语言编程之旅: go-programming.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值