登录
首页 >  Golang >  Go问答

如何正确使用for循环获取db数据

来源:stackoverflow

时间:2024-04-20 16:30:40 474浏览 收藏

大家好,我们又见面了啊~本文《如何正确使用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数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>