gpt4 book ai didi

mysql - 如何将值从 MySQL 传递到模板

转载 作者:IT王子 更新时间:2023-10-29 00:43:05 30 4
gpt4 key购买 nike

这个结构将值传递给模板

type Entry struct {
Name, Mes string
}

这个函数用 HandleFunc("/", mysqlWithTempl) 处理

func mysqlWithTempl(w http.ResponseWriter, r *http.Request) {

// Open database
con, err := sql.Open("mymysql", dbName+"/"+dbUserName+"/"+dbPassword)
if err != nil {
panic(err)
}

// Close database
defer con.Close()

//query
rows, err := con.Query("select name, message from entry")

tRes := Entry{}

//fetch result
for rows.Next() {
var name, message string
rows.Scan(&name, &message)
tRes.Name = name
tRes.Mes = message
}
index.Execute(w, tRes)
}

和这个模板

<!DOCTYPE html>
<html>
<head>
<title> Test </title>
</head>
<body>
<section id="contents">
<p> {{.Mes}} {{.Name}} </p>
</section>
</body>
</html>

我问如何从 mysql 中获取更多的值并将其传递给模板

什么时候尝试

 for rows.Next() {
var name, message string
rows.Scan(&name, &message)
tRes.Name = name
tRes.Mes = message
index.Execute(w, tRes)
}

获取所有结果,但每件事都重复

最佳答案

我想您可能会问如何显示多个结果?

如果是这样,那么您希望将所有行累积到一个 slice 中,如下所示:

results := []Entry
for rows.Next() {
var name, message string
rows.Scan(&name, &message)
tRes.Name = name
tRes.Mes = message
results = append(results, tRes)
}
index.Execute(w, results)

然后您的模板将变为如下所示:

<!DOCTYPE html>
<html>
<head>
<title> Test </title>
</head>
<body>
<section id="contents">
{{range .}}
<p> {{.Mes}} {{.Name}} </p>
{{end}}
</section>
</body>
</html>

我相信这会导致一个 <p> {{.Mess}} {{.Name}} </p>在您的 mysql 查询返回的每行上运行。

虽然我还没有实际测试过这段代码,所以它可能有错误。

关于mysql - 如何将值从 MySQL 传递到模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356584/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com