我正在尝试构建一个小型 Web 应用程序。我在理解如何查询数据库并在 HTML 视图中显示结果时遇到了麻烦。
我已经有一个名为“shop”的 PostgreSQL 数据库和一个名为“books”的表。此表包含字段“id”、“booknum”、“bookname”、“author”和“category”。
我设法获得了一个数据库连接并创建了模型结构。现在我不知道如何为查询创建函数 ie*("SELECT * FROM books;") 并在索引视图文件中显示结果。
通过干净的狂欢构建,我添加了以下代码。
应用程序/控制器/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)
}
应用程序/控制器/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
}
应用程序/控制器/init.go
package controllers
import "github.com/revel/revel"
func init() {
revel.OnAppStart(initDB) // invoke InitDB function before
}
应用程序/模型/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)"`
}
任何反馈或帮助将不胜感激..谢谢