当前位置: > > > > 如何正确使用for循环获取db数据
如何正确使用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数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注米云公众号吧!
