如何在Golang中将列表传递给模板

时间:2017-06-08 16:28:20

标签: go

我想使用看起来像

的查询
rows:= db.Query("SELECT * FROM names")

var name string

for rows.Next() {
    rows.Scan(&name)
}

//There should be a map

t.Execute(w,p)

我想对此进行整理,以列出模板中的所有名称,如

{{range .name}}
{{.}}
{{end}}

我怎么能完全这样做?

1 个答案:

答案 0 :(得分:0)

这样的事情?

rows, err := db.Query("SELECT name FROM names")
if err != nil {
    // Handle error
}

names := make([]string, 0)

for rows.Next() {
    var name string

    err := rows.Scan(&name)
    if err != nil {
        // Handle error
        continue
    }

    names = append(names, name)
}

t := template.New("index")
t, _ = t.Parse(`{{range .}}{{.}} {{end}}`)
t.Execute(w, names)

注意事项

  • 您通常应避免在SQL查询中使用*来明确选择哪些字段
  • 如果数据库表中的任何字段可以 NULL,请使用sql.NullBoolsql.NullFloat64sql.NullInt64sql.NullString为了避免可能的错误

可能的输出

Bob Jim David Henry Jerry