Controller
Controller等同于Django里的view,处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller。
我们在写自己的controller的时候,一定要继承beego.Controller,也一定要记得导入github.com/astaxie/beego
开始动手
- 我们先在router/router.go里面添加一条路由,路由指向我们自己的目录,
beego.Router("/test", &controllers.TestContronller{}, "get:SelfTest")
- 然后在controllers目录下创建一个test.go文件,文件代码如下:
// testpackage controllers // 包一定是这个名import ( "github.com/astaxie/beego")type TestContronller struct { beego.Controller}func (c *TestContronller) SelfTest() { c.Ctx.WriteString("this is myself controller!")}
注意这个package 必须是controllers,新建的话一般都是main,所以记得修改。
然后我们重启下beeGo,访问http://127.0.0.1/test 就可以看到我们自己返回的内容了。
获取用户请求数据的方法
用户通常通过Get,Post等方式来发送数据,beeGo里面会自动解析这些数据,我们可以用下面这些方法来处理。
- GetString(key string) string
- GetStrings(key string) []string
- GetInt(key string) (int64,error)
- GetBool(key string)(bool,error)
- GetFloat(key string)(float64,error)
小试身手
GetString
我们先从GetString 这个方法来做:
1 先在router.go加上对应的路由规则beego.Router("/getdata", &controllers.TestContronller{}, "get:GetData")
2 然后在controllers/test.go里面写上自己的代码,
package controllersimport ( "github.com/astaxie/beego")type TestContronller struct { beego.Controller}func (c *TestContronller) GetData() { id := c.GetString("id") c.Ctx.WriteString(id) name := c.Input().Get("name") c.Ctx.WriteString(name)}
代码写完后重启,此时,我们访问 那么页面就会显示 hehe lisis