分享
golang gin 技巧
云上听风 · · 2166 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
一、在html模板中直接输出html代码
gin文档挺坑爹的一点是居然没有使用html模板时在go代码中直接插入html代码的说明,搞得不熟悉go Template的话还得查找半天解决方案。
解决方案:
使用template.HTML。
例子:
index.tmpl文件:
{{.data1}}
{{.data2}}
go代码:
c.HTML(http.StatusOK, "index.tmpl", gin.H{
"data1": "<p> test </p>"
"data2": template.HTML("<p> test </p>"),
})
返回的html为:
<p> test </p>
test
二、遍历PostForm的所有param
没找到遍历post提交的form里所有param的API,所以参照源码写了这个方法 :
func updatePostPage(c *gin.Context) {
req := c.Request
req.ParseForm()
req.ParseMultipartForm(32 << 20)//参数相当于32M,官方源码中本来定义了个变量,但是是private类型不能直接调用,所以干脆直接写个值。
h := gin.H{}
for k, v := range req.PostForm {
if len(v) > 0 {
println(k, v[0])
h[k] = v[0]
}
}
c.JSON(http.StatusOK, h)
}
三、输出漂亮json
- 使用
c.IndentedJSON替代c.JSON。 - 如果是使用golang自带的JSON库,使用:
ret, err := json.MarshalIndent(h, "", "\t")
替代json.Marshal可以得到漂亮json。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信2166 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
一、在html模板中直接输出html代码
gin文档挺坑爹的一点是居然没有使用html模板时在go代码中直接插入html代码的说明,搞得不熟悉go Template的话还得查找半天解决方案。
解决方案:
使用template.HTML。
例子:
index.tmpl文件:
{{.data1}}
{{.data2}}
go代码:
c.HTML(http.StatusOK, "index.tmpl", gin.H{
"data1": "<p> test </p>"
"data2": template.HTML("<p> test </p>"),
})
返回的html为:
<p> test </p>
test
二、遍历PostForm的所有param
没找到遍历post提交的form里所有param的API,所以参照源码写了这个方法 :
func updatePostPage(c *gin.Context) {
req := c.Request
req.ParseForm()
req.ParseMultipartForm(32 << 20)//参数相当于32M,官方源码中本来定义了个变量,但是是private类型不能直接调用,所以干脆直接写个值。
h := gin.H{}
for k, v := range req.PostForm {
if len(v) > 0 {
println(k, v[0])
h[k] = v[0]
}
}
c.JSON(http.StatusOK, h)
}
三、输出漂亮json
- 使用
c.IndentedJSON替代c.JSON。 - 如果是使用golang自带的JSON库,使用:
ret, err := json.MarshalIndent(h, "", "\t")
替代json.Marshal可以得到漂亮json。