Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menulis templat html secara berperingkat dalam go

Bagaimana untuk menulis templat html secara berperingkat dalam go

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-06 09:50:08
ke hadapan
857 orang telah melayarinya

Bagaimana untuk menulis templat html secara berperingkat dalam go

Kandungan soalan

Saya sedang membina pelayar data berasaskan web yang dipanggil mavgo flight. Saya mahu jadual besar dalam sqlite dicetak secara berterusan dan bukannya kelakuan lalai hanya mencetak apabila semua data tersedia. Saya cuba menjalankan templat setiap baris data tetapi gagal.

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)
    }
}
Salin selepas log masuk


Jawapan betul


Saya berputus asa untuk menjadi pandai dan melakukan apa yang dicadangkan oleh cerise Fungsi untuk menulis baris secara berperingkat:

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 := `  </tbody>
</table>
</div>

</body>
</html>`
head.Execute(w, cols)
s := make([]string, len(cols))
for result.Next() {
    values, err := result.SliceScan()
    if err != nil {
        log.Println(w, err)
        break
    }

    for i, v := range values {
        s[i] = fmt.Sprint(v)
    }
    row.Execute(w, s)
}
fmt.Fprint(w, foot)
Salin selepas log masuk

}

Atas ialah kandungan terperinci Bagaimana untuk menulis templat html secara berperingkat dalam go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan