Я работаю над страницей, которая получит переменную из URL, выполнит запрос к базе данных mysql, получит результаты и отобразит их на странице.Я использую шаблоны здесь.Я следую некоторому руководству и получил большую часть этого, но я застрял в одном:
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}]
У меня проблема в том, чтоотображение этих данных в шаблоне.Я получаю только жестко закодированный текст и никаких переменных.Что я делаю не так?