Может ли кто-нибудь помочь мне, пожалуйста, заполните шаблон из вложенных данных структуры, здесь код, который получает данные из объявления mysql, заполняет Эм очень хорошо
package main
import (
"html/template"
"log"
"net/http"
"database/sql"
"github.com/gorilla/mux"
_ "github.com/go-sql-driver/mysql"
)
var (
o one
)
type one struct {
point bool
em []two
}
type two struct {
id uint16
uid uint16
}
func checkErr(err error) {
if err != nil {
log.Fatal(err)
}
}
func listandlist(w http.ResponseWriter, r *http.Request) {
db, err = sql.Open("mysql", "torwald:ragnar@tcp(127.0.0.1:3306)/harpy")
checkErr(err)
defer db.Close()
err = db.Ping()
checkErr(err)
rows, err := db.Query("select * from global where point=?", o.point)
checkErr(err)
em := []two{}
for rows.Next() {
p := two{}
err := rows.Scan(&p.id, &p.uid)
if err != nil {
log.Println(err)
continue
}
log.Println("full list id and uid", p.id, p.uid)
em = append(em, p)
}
if r.Method != "POST" {
t, err := template.ParseFiles("templates/one.html", "templates/two.html", "templates/tree.html")
if err != nil {
log.Fatal(w, err.Error())
return
}
t.ExecuteTemplate(w, "list", o)
return
}
}
но в шаблоне пусто
{{ define "list" }} {{ template "header" .}}
{{range .two}}
{{.id}}
{{.uid}}
{{end}}
{{ template "footer" }} {{ end }}
не могли бы сказать мне, пожалуйста, когда я сломаюсь? как я могу получить информацию из вложенной структуры в шаблоне?
в таблице mysql global у нас есть структура
TABLE `global` (
`id` int(11) unsigned NOT NULL,
`uid` int(11) unsigned NOT NULL,
`point` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
и заполнен данными, образец
id | uid | point 1 | 2 | 0 2 | 3 | 0 2 | 1 | 1 3 | 1 | 0 1 | 3 | 0 3 | 2 | 1
и в результате запустите этот запрос с point = 1, я хочу увидеть результат шаблона с двумя строками:
2 1 3 2
Спасибо, Макс, я добавил базовую структуру и хотел получить результат, надеюсь, он понятен
Я думаю, вам не хватает информации о том, как вы извлекаете данные из базы данных. Что это за тип db
и как вы его инициализируете?
Спасибо, Долан. стандартный mysql, работает отлично, но я тоже добавил его информацию сейчас
Готов поспорить, пока в ваших структурах есть только частные переменные, ничто другое (включая код шаблона) не сможет их увидеть. Было бы полезно, если бы вы могли сделать свое воспроизведение не требующим базы данных (это, похоже, не имеет прямого отношения к вопросу о шаблонах).
Начните с экспорта ваших полей.
Вам нужно экспортировать поля своей структуры. Кроме того, Template.ExecuteTemplate()
возвращает ошибку, которую вы не проверяете, всегда проверять все ошибки.
Привет, я не понимаю твой вопрос. Как вы хотите, чтобы результат выглядел, в отличие от того, как он на самом деле выходит в данный момент? Можете ли вы уменьшить это до Минимальный, полный, проверяемый пример?