如何在 golang gin web 框架中使用 golang 数据渲染 HTML?

未来陆*_*投资人 3 html go go-gin

我正在尝试将一个 golang 数组(还有切片、结构等)放置到 HTML 中,以便在从 golang gin web 框架返回 HTML 时可以在 HTML 元素内容中使用数组元素。另一个问题是如何用循环渲染这些数据?比如 Flask jinja 就是这样工作的。

{% block body %}
  <ul>
  {% for user in users %}
  <li><a href="{{ user.url }}">{{ user.username }}</a></li>
  {% endfor %}
  </ul>
Run Code Online (Sandbox Code Playgroud)

Hen*_*ski 9

通常你有一个包含模板文件的文件夹,所以首先你需要告诉 gin 这些模板所在的位置:

router := gin.Default()
router.LoadHTMLGlob("templates/*")
Run Code Online (Sandbox Code Playgroud)

然后在处理程序函数中,您只需将模板名称数据传递给 HTML 函数,如下所示:

func (s *Server) renderIndex(c *gin.Context) {
    c.HTML(http.StatusOK, "index.tmpl", []string{"a", "b", "c"})
}
Run Code Online (Sandbox Code Playgroud)

index.tmpl可以循环像这样的数据:

{{range .}}
    {{.}}
{{end}}
Run Code Online (Sandbox Code Playgroud)

.是总是当前上下文所以在第一行.是所述输入数据和所述范围内循环.是当前元素。

模板示例:https : //play.golang.org/p/4_IPwD3Y84D

关于模板的文档:https : //golang.org/pkg/text/template/

很好的例子:https : //ataxie.gitbooks.io/build-web-application-with-golang/en/07.4.html