1

私は 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)"`
}

どんなフィードバックやヘルプも大歓迎です..ありがとう

4

1 に答える 1