Beego框架之hello world
Beego创建完一个应用后,自动创建入口、路由文件、主控制器及模板文件,这里主要演示如何通过控制器输出参数,两种方式:直接输出和通过模板输出。下面的演示直接输出,我们一进创建完应用,在controllers文件夹有名为default.go的文件,默认带的参数输出到模板显示,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package controllers import ( "github.com/astaxie/beego" //引入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" //载入模板文件 } |
我们打开views下的index.tpl,找到84行开始代码如下:
1 2 3 4 5 6 |
<div class="author"> Official website: <a href="http://{{.Website}}">{{.Website}}</a> / Contact me: <a class="email" href="mailto:{{.Email}}">{{.Email}}</a> </div> |
{{.Website}}和{{.Email}}调用控制器输出两个参数。我们把控制器的这两个参数修改成如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package controllers import ( "github.com/astaxie/beego" //引入Beego框架 ) type MainController struct { beego.Controller } func (c *MainController) Get() { c.Data["Website"] = "jsgang.top" //输出参数 c.Data["Email"] = "jsgang9@gmail.com" //输出参数 c.TplName = "index.tpl" //载入模板文件 } |
然后运行该应用,放问站点,返回结果如下图:

说明:Beego输出参数到模板,使用c.Data["Website"] = "jsgang.top"定义,参数可以是数字、字符及数组都可以,c是func (c *MainController)红色字,这里可以修改成任意的名,同时函数里c也对应修改成你定义的名称。
Beego直接输出有两种方式:c.Ctx.Output.Body([]byte("Hello World!"))和c.Ctx.WriteString("Hello World!"),两个输出效果一样,区别是:c.Ctx.Output.Body一个函数只输出一次,c.Ctx.WriteString可以输出任意个,演示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package controllers import ( "github.com/astaxie/beego" //引入Beego框架 ) type MainController struct { beego.Controller } func (c *MainController) Get() { c.Ctx.Output.Body([]byte("Hello World!")) c.Ctx.Output.Body([]byte("世界您好!")) } |
运行后返回结果如下:
1 |
Hello World! |
只返回第一条,使用WriteString输出,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package controllers import ( "github.com/astaxie/beego" //引入Beego框架 ) type MainController struct { beego.Controller } func (c *MainController) Get() { c.Ctx.WriteString("Hello World!") c.CtxWriteString("世界您好!") } |
运行后返回结果如下:
1 |
Hello World!世界您好! |