首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Revel中使用Gorm查询表

在Revel中使用Gorm查询表
EN

Stack Overflow用户
提问于 2016-09-24 05:16:06
回答 1查看 529关注 0票数 1

我正在尝试建立一个小型web应用程序Revel。我在理解如何查询数据库并在HTML视图中显示结果时遇到了问题。

我已经有一个名为“PostgreSQL”的商店DB和一个名为"books“的表。此表包含字段"id“、"booknum”、"bookname“、"author”和"category“。

我已经设法获得了一个db连接,并创建了模型结构。现在,我不知道如何为查询ie*("SELECT * FROM book;“)创建函数并在索引视图文件中显示结果。

通过一个干净的revel构建,我添加了以下代码。

app/controller/app.go

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
package controllers

import "github.com/revel/revel"

func init() {
    revel.OnAppStart(initDB) // invoke InitDB function before
 }

app/model/books.go

代码语言:javascript
复制
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或帮助都将非常感谢..谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-02 06:46:52

首先,您可以在app.go文件中使用以下代码

代码语言:javascript
复制
result := c.DB.Find(books)
return c.RenderJSON(result)

第一行查询数据库中的所有图书(与select * from books相同;)第二行返回JSON,允许您验证是否获得了预期的数据。

下一步是获取结果并将其应用于模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39669673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档