常见GO WEB 框架
- Beego
- Buffala
- Echo
- Gin
- Iris
- Revel
Beego框架特点
- 比较典型的MVC框架
- 中国人开发,文档比较详细
- 使用的公司多,如今日头条、百度云盘、腾讯、阿里
- 例子很多
Beego 依赖包安装
go get -u github.com/astaxie/beego
go get -u github.com/beego/bee
go get github.com/astaxie/beego/orm
Beego之controller
Beego支持三种路由
- 固定路由
- 正则路由
- 自动路由
创建Beego项目
bee new appsh
运行Beego项目
bee run
看到下图,运行成功
Beego 建表程序
package main
import (
"fmt"
"github.com/astaxie/beego/orm"
)
import _ "github.com/go-sql-driver/mysql" // import your used driver
type User struct {
Id int
Name string `orm:"size(32)"`
}
func init() {
orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/school?charset=utf8", 30)
orm.RegisterModel(new(User))
orm.RunSyncdb("default", false, true)
}
func main() {
o := orm.NewOrm()
user := User{Name: "BeyondChampion"}
// insert
id, err := o.Insert(&user)
fmt.Printf("ID: %d, ERR: %v\n", id, err)
}
Beego 增删改查
package main
import (
"fmt"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" // import your used driver
)
// Model Struct
type User struct {
Id int
Name string `orm:"size(32)"`
}
func init() {
orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/school?charset=utf8", 30)
orm.RegisterModel(new(User))
orm.RunSyncdb("default", false, true)
}
func main() {
o := orm.NewOrm()
user := User{Name: "ArthurGuo"}
// insert
id, err := o.Insert(&user)
fmt.Printf("ID: %d, ERR: %v\n", id, err)
// update
user.Name = "Guo"
num, err := o.Update(&user)
fmt.Printf("NUM: %d, ERR: %v\n", num, err)
u := User{Id: user.Id}
err = o.Read(&u)
fmt.Printf("ERR: %v\n", err)
//num, err = o.Delete(&u)
//fmt.Printf("NUM: %d, ERR: %v\n", 1, err)
}