当前位置: > > > > 如何正确使用for循环获取db数据
来源:stackoverflow
2024-04-20 16:30:40
0浏览
收藏
大家好,我们又见面了啊~本文《如何正确使用for循环获取db数据》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~
问题内容
我遇到了模板的问题,因为我还不太明白它是如何工作的。
我的项目是一个支持票证系统,我正在尝试从数据库获取所有条目。在本例中,我使用 boltdb。
问题是,当我创建 for 循环时,html 文件中的所有内容也将位于该循环的“内部”。
如何正确编码,以显示条目而不重复我的 html?
package main import ( "encoding/json" "html/template" "log" "net/http" ) type ManageTicketsPage struct { Nome string Chamado string } func ManageTicketsHandler(w http.ResponseWriter, r *http.Request) { //Pick all tickets from boltdb. entries := system_db_listTable(sysdb, "tickets") results := [][]string{[]string{ "Chamado", "Nome do Operador", "Ativo Retorno", "Ativo Saida", "Status", "Data da Solicitação", "Atualizado em", }} for _, thisTicket := range entries { ticketObjectJson := thisTicket[1] thisTicketObject := new(ticket) err := json.Unmarshal(ticketObjectJson, &thisTicketObject) if err != nil { panic(err) } thisCSVLine := []string{ thisTicketObject.Nome, thisTicketObject.AtivoCPU, thisTicketObject.AtivoSaida, thisTicketObject.Status, thisTicketObject.DataEntrada, thisTicketObject.SubmissionTime.Format("02/01/2006 15:04"), } Nome := thisTicketObject.Nome Chamado := thisTicketObject.AtivoCPU p := ManageTicketsPage{Nome: Nome, Chamado: Chamado} log.Println(Nome) results = append(results, thisCSVLine) t, _ := template.ParseFiles("web/admin/tickets.html") t.Execute(w, p) //log.Println(Nome) } }
解决方案
最好创建一个 Ticket 结构,解组到 Ticket 切片中,仅在传入该切片时渲染一次,并在模板中使用范围。
理论要掌握,实操不能落!以上关于《如何正确使用for循环获取db数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注公众号吧!