一、前言
beego 是一个可以快速开发 Go 应用的 HTTP 框架,使用beego你可以可以快速开发 API、Web 及后端服务等各种应用,其是一个 RESTful 的框架。本节作为第一节,我们看如何使用beego搭建一个简单WEB应用
二、bee 工具的安装与应用创建
我们可以使用命令 go get github.com/beego/bee 来安装bee工具,默认bee的可执行文件会存放在 $GOPATH/bin 下面,所以你需把该路径加入环境变量,但是如果你安装go时候已经把 $GOPATH/bin放到了环境变量里面就不需要再次配置了。
安装好后,大家可以在$GOPATH/src 目录下执行bee new youwebname 创建你自己的 youwebname:
![fe862ed61c4faf016086c4b7dc020e36.png](https://i-blog.csdnimg.cn/blog_migrate/dce3b5b0133850cbfe4d7f701dc0a784.jpeg)
image.png
如上代码创建了名称为mybeen的web项目,其项目树形结构如下:
![e4743d2d3baa272e686cb859f6858892.png](https://i-blog.csdnimg.cn/blog_migrate/d4a0bbd4c1fbf750163ef9779362a434.jpeg)
image.png
beego创建的应用是MVC模式,其中views为V层,models为M层,controllers为C层。
三、mybeen应用介绍
创建的mybeen应用中main.go为应用启动入口,代码如下:
package mainimport ( _ "mybeen/routers" "github.com/astaxie/beego")func main() { //运行前添加hook方法 //beego.AddAPPStartHook(hf); beego.Run()}
如上代码调用了beego包的Run()方法启动整个go应用。
controllers包中为默认处理器,代码如下:
package controllersimport ( "github.com/astaxie/beego")//1.MainController继承Controller的方法与成员变量type MainController struct { beego.Controller}//2.重写MainController继承Controller的Get()方法。func (c *MainController) Get() { //2.1需要传递给V层的数据 c.Data["Website"] = "beego.me" c.Data["Email"] = "astaxie@gmail.com" //2.2模板,需要把数据传递给那个页面模板 c.TplName = "index.tpl" //2.3可以不设置模板,使用下面直接渲染 //c.Ctx.WriteString("hello,jiaduo")}
可知当通过get方式访问对应web页面时候会调用MainController重写的Get方法,其内部设置变量到Data属性里面,然后View 层的页面模板会从占位符中获取该变量,进行占位符替换。对应View层模板是哪个是使用TplName来指定的。
在views下确实有index.tpl,其部分代码如下:
......
...