探究beego原理-初章

本文详细介绍了如何使用beego框架快速搭建一个基于Go的Web应用,包括bee工具的安装、应用创建、MVC模式的简单应用以及如何启动和访问服务。通过创建名为mybeen的示例应用,阐述了beego的MainController、视图模板和路由配置的工作原理。
摘要由CSDN通过智能技术生成

一、前言

beego 是一个可以快速开发 Go 应用的 HTTP 框架,使用beego你可以可以快速开发 API、Web 及后端服务等各种应用,其是一个 RESTful 的框架。本节作为第一节,我们看如何使用beego搭建一个简单WEB应用

二、bee 工具的安装与应用创建

我们可以使用命令 gogetgithub.com/beego/bee 来安装bee工具,默认bee的可执行文件会存放在 $GOPATH/bin 下面,所以你需把该路径加入环境变量,但是如果你安装go时候已经把 $GOPATH/bin放到了环境变量里面就不需要再次配置了。

安装好后,大家可以在 $GOPATH/src 目录下执行bee new youwebname 创建你自己的 youwebname:

640?wx_fmt=png

如上代码创建了名称为mybeen的web项目,其项目树形结构如下:640?wx_fmt=png

beego创建的应用是MVC模式,其中views为V层,models为M层,controllers为C层。

三、mybeen应用介绍

创建的mybeen应用中main.go为应用启动入口,代码如下:

package main	
import (	
    _ "mybeen/routers"	
    "github.com/astaxie/beego"	
)	
func main() {	
    //运行前添加hook方法	
    //beego.AddAPPStartHook(hf);	
    beego.Run()	
}

如上代码调用了beego包的Run()方法启动整个go应用。

controllers包中为默认处理器,代码如下:

package controllers	
import (	
    "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,其部分代码如下:

...	
<body>	
 ...	
    <div class="author">	
      Official website:	
      <a href="http://{{.Website}}">{{.Website}}</a> /	
      Contact me:	
      <a class="email" href="mailto:{{.Email}}">{{.Email}}</a>	
    </div>	
  </footer>	
  ...	
</body>	
</html>

可知其确实使用占位符来获取变量Website和Email的值。

最后还有一点就是那里设置了当访问某一个url路径时候选择哪一个controller处理那?这是router的事情,在routers下面有router.go :

func init() {	
    beego.Router("/", &controllers.MainController{})	
}

如上代码我们访问应用根路径时候,使用MainController来处理。

四、启动并访问

在eclipse里面允许main.go后,控制台会输出:

2019/06/07 12:43:28.034 [1;34m[I][0m [asm_amd64.s:1333]  http server Running on http://:8080

说明http服务器已经启动,并且默认在8080监听服务,这时候,我们访问http://127.0.0.1:8080/640?wx_fmt=png

五、总结

作为探究beego原理的第一步,本文我们创建并启动了一个简单的http服务,并且介绍了其MVC模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值