一,开发环境准备
安装beego及bee工具(需要安装Git)
go get -u github.com/astaxie/beego
go get -u github.com/beego/bee
命令执行完成之后,会在GoPath下生成目录及文件(GoPath主要放置第三方依赖)
在环境变量中可以看到位置:
创建项目测试:
进入GoPath下的src目录
bee new Hello
cd Hello
bee run
访问localhost:8080
集成到Goland
进入GoPath目录下,将创建的项目文件用Goland打开
运行快捷键 Ctrl+Shift + F10
二,路由设置
main.go源文件
package main
import (
_ "TestProject/routers"
"github.com/astaxie/beego"
)
func main() {
beego.Run()
}
其中_ "TestProject/routers"控制路由
在routers目录下有一个router.go
代码如下
package routers
import (
"TestProject/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
}
其中beego.Router()函数执行了路由注册
这个函数的功能是映射 URL 到 controller
例如:
beego.Router("/", &controllers.MainController{})
就是/映射到MainController
同理,类似的路由注册方式
beego.Router("/user", &controllers.UserController{})
/user 映射到UserController
三,beego.Run()执行了哪些操作
app.conf
AddAPPStartHookListenAndServe
四,Controller运行逻辑
controllers包下的default.go代码如下
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"
}
MainControllerbeego.ControllerMainControllerbeego.Controller
beego.ControllerInitPreparePostGetDeleteHead
上述代码重写了Get方法,同样也可以重写其他方法实现自定义的功能。
this.Data
this.TplNameindex.tplController/<方法名>.tplmaincontroller/get.tpl
Render
this.Ctx.WriteString
func (this *MainController) Get() {
this.Ctx.WriteString("hello")
}