安装
安装beego 及其 工具包bee
go get -u github.com/astaxie/beego
go get -u github.com/beego/bee
安装后bee.exe出现在GOPATH的bin目录中,如果该bin目录再path中,则可以通过bee version 查看到安装情况:
项目结构
cache
支持四类:文件、内存、memcache、redisconfig
支持:ini、json、xml、yamlcontext
封装request、responsehttplibs
模拟http请求,支持get、post、put等,支持超时设置、文件上穿等。logs
多种输出引擎,异步输出。
bee工具应用
bee new:创建新项目
bee run: 自动编译部署
bee generate:自动生成代码
创建项目:
启动项目:
生成的目录如下:
常规目录结构,不再赘述。
项目基本流程
main作为项目入口只有一个函数并执行了beego.run()
package main
import (
_ "learnBee/routers"
"github.com/astaxie/beego"
)
func main() {
beego.Run()
}
import (
_ "learnBee/routers"
前面的下划线表示只执行router的init函数。
func init() {
beego.Router("/", &controllers.MainController{})
}
init 函数中的两个参数分别指定url和对应的controller函数
package controllers
import (
"github.com/astaxie/beego"
)
type MainController struct {
beego.Controller
}
func (c *MainController) Get() {
c.Data["Website"] = "beego.me"
c.Data["Email"] = "astaxie@gmail.com"
c.TplName = "index.tpl"
}
函数中传递了参数并制定了所渲染的模板:index.tpl
参数传递如下:
另外,通过c.GetString(key:**)来获取url传递的参数
数据交互:
通过generate自动生产代码
首先链接数据库中的某个scheme
bee generate scaffold people -fields ="id:int, age:int, name:string" -driver=mysql -conn="root:@tcp(127.0.0.1:3306)/learn_go"
后续是一些选项
结束后相关的mvc文件就被自动创建了。
后面我们修改main函数,添加一些依赖包并配置数据库
import (
_ "learnBee/routers"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_"github.com/go-sql-driver/mysql"
)
func main() {
orm.RegisterDataBase("default","mysql","root:<密码>@tcp(127.0.0.1:3306)/learn_go")
beego.Run()
}
在路由中重新指定controller
func init() {
//beego.Router("/", &controllers.MainController{})
beego.Include(&controllers.PeopleController{})
}
url的配置,竟然是注释模式。。
iris框架
最后附一个iris框架的简介链接:
https://www.jianshu.com/p/1577a05bb46f