在模板中显示查询结果时出现问题

时间:2019-09-25 17:36:31

标签: templates go

我正在一个页面上,该页面将从URL中获取变量,对mysql db运行查询,获取结果并将其显示在页面上。我在这里使用模板。 我正在学习一些教程,并完成了大部分工作,但是我只能坚持一件事。

func dbConnection() (db *sql.DB) {
db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
    panic(err.Error())
}
return db
}

type Order struct {
   Order_id int
   Customer string
   Date_of_purchase string
}

这是我要获取数据并呈现模板的函数:

func CustomerPage(w http.ResponseWriter, r *http.Request)  {
db := dbConnection()
//customer := r.URL.Query().Get("username")
query, err := db.Query("SELECT * FROM orders WHERE customer='David'")
if err != nil {
    panic(err.Error())
}
order := Order{}
results := []Order{}
for query.Next(){
    var order_id int
    var customer, date_of_purchase string
    query.Scan(&order_id, &customer, &date_of_purchase)
    order.Order_id = order_id
    order.Customer = customer
    order.Date_of_purchase = date_of_purchase
    results = append(results, order)
    fmt.Println(order_id)
    fmt.Println(customer)
}
fmt.Println(results)
temp, err := template.ParseFiles("templates/orders.html")
temp.Execute(w, results)
defer query.Close()
}

最后是我的模板:

<h1>Hello</h1>
<h3>Your username is {{ .Customer }}</h3>
{{ range . }}
<h2> {{ .Order_id }}</h2>
{{ end }}

通过打印,我可以看到正确地提取了数据,如下所示:

[{3485208 David 2019-06-03} {4448668 David 2019-03-10} {5727877 David 2019-08-23} {6979516 David 2019-03-04} {8277481 David 2019-02-07}]

我遇到的问题是在模板中显示此数据。我只得到硬编码的文本,没有变量。 我在做什么错了?

0 个答案:

没有答案