Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menulis templat html secara berperingkat dalam go
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) } }
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)
}
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!