beego自动建数据表及测试数据文件
- beego自动创建数据表
在上篇文章的基础上,在utils/InitSql.go里添加如果代码
方法一
orm.RunSyncdb("default", false, true)
需要在main.go里import hello/models
如下main.go文件
package main
import (
_ "hello/models"
_ "hello/utils"
_ "hello/routers"
beego "github.com/beego/beego/v2/server/web"
)
func main() {
// 自动建表第二种方式
// orm.RunSyncdb("default", false, true)
beego.Run()
}
hello/models 必须在"hello/utils"上面
方法二
直接在main.go里main方法里 添加 orm.RunSyncdb(“default”, false, true)
- 测试
models/content.go
package models
import (
// 导入orm包
"github.com/beego/beego/v2/client/orm"
// 导入mysql驱动
_ "github.com/go-sql-driver/mysql"
)
type Contents struct {
Id int `orm:"pk;auto"` //设置主键自增长 字段名为 id
Title string `orm:"size(20)"` //设置title长度20
Content string `orm:"size(255)"`
Type string // 1成长圈2生活圈3兴趣圈
}
func init() {
orm.RegisterModel(new(Contents))
}
controllers/content.go
package controllers
import (
"fmt"
"hello/models"
"github.com/beego/beego/v2/client/orm"
beego "github.com/beego/beego/v2/server/web"
)
type ContentController struct {
beego.Controller
}
func (c *ContentController) Insert() {
o := orm.NewOrm()
con := models.Contents{}
con.Title = "添加title"
con.Content = "添加内容"
con.Type = "2"
_ ,err := o.Insert(&con)
if err != nil {
fmt.Println("插入失败", err)
return
}
fmt.Println("插入成功")
}
routers/router.go
添加 content路由
beego.Router("/content", &controllers.ContentController{}, "get:Insert")
end