前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >beego-应用搭建

beego-应用搭建

作者头像
加多
发布2019-06-14 20:59:20
6870
发布2019-06-14 20:59:20
举报
文章被收录于专栏:Java编程技术

一、前言

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:

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

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

三、mybeen应用介绍

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

代码语言:javascript
复制
package main

import (
   _ "mybeen/routers"
   "github.com/astaxie/beego"
)

func main() {
   //运行前添加hook方法
   //beego.AddAPPStartHook(hf);
   beego.Run()
}

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

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

代码语言:javascript
复制
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,其部分代码如下:

代码语言:javascript
复制
...
<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 :

代码语言:javascript
复制
func init() {
   beego.Router("/", &controllers.MainController{})
}

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

四、启动并访问

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

代码语言:javascript
复制
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/

五、总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.06.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、bee 工具的安装与应用创建
  • 三、mybeen应用介绍
  • 四、启动并访问
  • 五、总结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档