我正在尝试建立一个小型web应用程序Revel。我在理解如何查询数据库并在HTML视图中显示结果时遇到了问题。
我已经有一个名为“PostgreSQL”的商店DB和一个名为"books“的表。此表包含字段"id“、"booknum”、"bookname“、"author”和"category“。
我已经设法获得了一个db连接,并创建了模型结构。现在,我不知道如何为查询ie*("SELECT * FROM book;“)创建函数并在索引视图文件中显示结果。
通过一个干净的revel构建,我添加了以下代码。
app/controller/app.go
package controllers
import (
"github.com/revel/revel"
"github.com/test/testapp/app/models"
)
type App struct {
*revel.Controller
GormController
}
func (c App) Index() revel.Result {
books := models.Books{}
return c.Render(books)
}app/controller/gorm.go
package controllers
import (
"github.com/jinzhu/gorm"
_ "github.com/lib/pq"
r "github.com/revel/revel"
"github.com/test/testapp/app/models"
)
var Gdb *gorm.DB
func initDB() {
Gdb, err := gorm.Open("postgres", "host=localhost user=username dbname=shop sslmode=disable password=password")
if err != nil {
panic("failed to connect database")
}
Gdb.AutoMigrate(&models.Books{})
}
type GormController struct {
*r.Controller
Txn *gorm.DB
}app/controller/init.go
package controllers
import "github.com/revel/revel"
func init() {
revel.OnAppStart(initDB) // invoke InitDB function before
}app/model/books.go
package models
type Sched struct { // example user fields
Id int64
Booknum string `sql:"type:VARCHAR(255)"`
Bookname string `sql:"type:VARCHAR(255)"`
Author string `sql:"type:VARCHAR(255)"`
Category string `sql:"type:VARCHAR(255)"`
}任何feedbcak或帮助都将非常感谢..谢谢
发布于 2018-08-02 06:46:52
首先,您可以在app.go文件中使用以下代码
result := c.DB.Find(books)
return c.RenderJSON(result)第一行查询数据库中的所有图书(与select * from books相同;)第二行返回JSON,允许您验证是否获得了预期的数据。
下一步是获取结果并将其应用于模板。
https://stackoverflow.com/questions/39669673
复制相似问题