私は Revel に小さな Web アプリの構築を試みています。DB にクエリを実行し、結果を HTML ビューに表示する方法を理解するのに問題があります。
「books」というテーブルを持つ「shop」という名前の PostgreSQL DB がすでにあります。このテーブルには、フィールド「id」、「booknum」、「bookname」、「author」、および「category」が含まれています。
私はなんとかdb接続を取得し、モデル構造体を作成しました。クエリ ie*("SELECT * FROM books;") の関数を作成し、その結果をインデックス ビュー ファイルに表示する方法がわかりません。
クリーンな revel ビルドで、次のコードを追加しました。
アプリ/コントローラー/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)"`
}
どんなフィードバックやヘルプも大歓迎です..ありがとう