golang gin 技巧

云上听风 · · 1698 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、在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


  1. 使用c.IndentedJSON替代c.JSON
  2. 如果是使用golang自带的JSON库,使用:
ret, err := json.MarshalIndent(h, "", "\t")

替代json.Marshal可以得到漂亮json。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:云上听风

查看原文:golang gin 技巧

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1698 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传