一、在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。
有疑问加站长微信联系(非本文作者)