常見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)
}