如何获得template模板编译后的内容?

meiruhua · 2021-10-09 18:42:03 · 1088 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-10-09 18:42:03 的主题,其中的信息可能已经有所发展或是发生改变。

func httpIndex(w http.ResponseWriter, r *http.Request) {
    fmt.Println(r.URL.Path)
    t, _ := template.New("main.html").Funcs(template.FuncMap{
        "funck": kuai,
    }).ParseFiles("main.html", "t.html")
    t.Execute(w, map[string]interface{}{
        "qq": "aBc",
        "cc": "456",
    })
}

上面的方法直接展示了编译后的页面,怎么样获取编译后的内容而不是直接展示?


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

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

1088 次点击  
加入收藏 微博
2 回复  |  直到 2021-10-10 09:22:14
wuchenghui
wuchenghui · #1 · 4年之前

直接读 w 不久行了

meiruhua
meiruhua · #2 · 4年之前

template 渲染的函数签名:Execute(wr io.Writer, data interface{}) error 显然渲染内容可输出到实现 io.Writer 接口的任何地方,比如 os.Stdout,文件,buffer 等地方

    var buf bytes.Buffer
    if err := t.Execute(&buf, map[string]interface{}{
        "qq": "aBc",
        "cc": "456",
    }); err != nil {
        log.Fatal(err)
    }
    fmt.Println(buf.String()) // 渲染后的字符串
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传