问题内容
我正在构建一个基于 web 的数据浏览器,名为 mavgo flight。我希望 sqlite 中的大型表能够连续打印,而不是仅在所有数据可用时才打印的默认行为。我尝试按每行数据运行模板,但失败了。
func renderHTMLTable(w http.ResponseWriter, result *sqlx.Rows) { cols, err := result.Columns() if err != nil { log.Println(err, "renderHTMLTable") return } tmpl, err := template.ParseFiles("./templates/2d.html") if err != nil { log.Println("template failed", err) return } data := HTMLTable{} data.Cols = cols for result.Next() { cols, err := result.SliceScan() if err != nil { log.Println(w, err) break } s := make([]string, len(cols)) for i, v := range cols { s[i] = fmt.Sprint(v) } tmpl.Execute(w, s) }}
登录后复制
正确答案
我放弃了聪明,完全按照 cerise 的建议去做增量写入行的函数:
func renderHTMLTable(w http.ResponseWriter, result *sqlx.Rows) {cols, err := result.Columns()if err != nil { log.Println(err, "renderHTMLTable") return}head, err := template.ParseFiles("./templates/head.html")if err != nil { log.Println("template failed", err) return}row, err := template.ParseFiles("./templates/row.html")if err != nil { log.Println("template failed", err) return}foot := `
登录后复制
以上就是如何在go中增量写入html模板的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2485445.html