beego入门基础

196 阅读1分钟

1.无法go get依赖包: golang 1.13 可以直接执行以下命令,使用国内七牛云的 go module 镜像:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

使用阿里云的 golang 国内镜像:

go env -w GO111MODULE=on
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

2.接口返回JSON格式数据 在公共目录下新建ToJson.go文件:

package common
type ToJson struct {
	Code int `json:"code"`
	Msg  string `json:"msg"` //指定字段返回格式,小写编译报错
	Data interface{} `json:"data"` //返回任意类型数据
}

控制器中调用:
this.Data["json"]=common.ToJson{1, "成功",‘data数据’}
this.ServeJSON()

3.model的使用: models目录下新建user.go 包名定义为models:

package models
import (
	"github.com/astaxie/beego/orm"
)

type User struct {
	Id   int    `json:"id"`
	Name string `json:"name"`
}

func NewUser() *User { 
	return &User{} //返回当前结构体对象
}

//插入数据
func (this *User) Add(info User)(user User,err error){
	_, err = orm.NewOrm().Insert(&info)
	return info,err
}

//删除数据
func (this *User) Del (user User) (int64, error){
	id, err := orm.NewOrm().Delete(&user)
	return id, err
}

//编辑数据
func (this *User) Edit(user User)(int64, error){
	if orm.NewOrm().Read(&user) == nil {
		user.Name = "new name"
		id, err := orm.NewOrm().Update(&user);
		return id, err
	}else {
		return 0, nil;
	}
}

//编辑数据
func (this *User) Find(user User)(error){
	err := orm.NewOrm().Read(&user)
	return err
}

//编辑数据
func (this *User) List() (user []User, rows int64, err error){
	rows, err = orm.NewOrm().QueryTable("hc_user").All(&user)
	return user,rows,err
}

4.数据库连接: 在models目录新建models.go文件插入以先代码:

package models

import (
	"github.com/astaxie/beego/orm"
)

func init() {
	orm.RegisterDriver("mysql", orm.DRMySQL)
	models := []interface{}{
		NewUser(),//新建的model都需要对应添加进来
	}
	orm.RegisterModelWithPrefix("hc_", models...)
	orm.RegisterDataBase("default", "mysql", "file:file@tcp(127.0.0.1:3306)/file?charset=utf8", 30)
	orm.Debug = true
	orm.RunSyncdb("default", false, false)

}

5.控制器中调用model插入数据库:

user := models.User{Name: "userName"}
models.NewUser().Add(user) //映射model中的user模型的add方法,公共查询方法直接放在models.go文件