Beego从0开始-1-Beego环境部署以及项目创建

Beego从0开始

Beego简介

​ Beego是一个基于Go语言开发的web框架,beego是一个快速开发Go应用的http框架,go 语言方面技术大牛。beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,但是结合了Go本身的一些特性(interface、struct继承等)而设计的一个框架。

为什么使用Beego

  1. 爱国:Beego是一个由中国人开发的web框架,狂赞!66666666
  2. Go语言的高效率:Go语言从语言层面支持多线程的使用,并且Go Routine的执行效率非常的高,Go原生支持内存自动回收。
  3. Beego的生态环境:Beego现在基本上算是Go语言最成熟的Web框架之一,应用非常广泛,性能也非常优秀,在接触BeeGo之前其实我还使用过Macaron框架,也是一个类似于Flask的RESTFul框架,但是它的生态不如Beego好,对于我们这种不太熟练的开发者,开发遇到问题是非常恼火的。

如何开始

​ 其实对于语言层面来说,我们只需要基本上了解基础的语法既可。面对于实际开发,可能实操会令我们的Coding能力增加的非常快。之前崇拜W7ay大佬,我想拥有代码强迫症,尽量代码多写注释、变量命名驼峰、格式对其。

​ 直接从实战开始,我老婆负责Web前端的页面制作,我主要负责后端制作,以及功能研发。做一个安全平台,结合多种安全必备的产品研发(端口扫描器、web漏洞扫描器、waf平台等为一体),充分积累我和老婆的web研发实战经验,为升值加薪努力拼命。

正式开始

1.Beego的下载安装

​ 到这里时,我们已经安装好了Go语言的环境,Go语言是自带包管理器,使用go get 可以直接从github上面获取代码。特别方便,下面这两句就是获取Beego的命令。第一句是获取beego的库的sdk、第二句是获取beegod管理工具—bee。

//安装beego环境 
go get github.com/astaxie/beego
//安装bee工具
go get github.com/beego/bee

​ 这样下载的beego和bee的文件会自动的存在于go语言的环境下面,我们这时候需要注意有没有在go语言的bin目录下面是否存在有bee的exe文件。如果Bee文件存在,则可下面使用命令创建第一个Beego的项目。

//使用Bee直接创建beego项目
bee new your_projectname

​ 这样,bee就会自动的在我们的go目录下面的src目录下创建名称为your_projectname的工程。下面就是其的目录树

├── conf           //配置文件
│   └── app.conf
├── controllers    //控制器
│   ├── admin
│   └── default.go
├── main.go        //项目入口
├── models         //模型   
│   └── models.go
├── routers       //路由
│   └──router.go
├── static         //静态文件
│   ├── css
│   ├── ico
│   ├── img
│   └── js
└── views          //界面模板
    ├── admin
    └── index.tpl

​ 可以看到,Bee为我们自动创了一个项目的壳子。运行项目试试,使用如下的bee命令

//直接在新创建的工程下打开cmd使用下面语句则可以直接运行beego项目
bee run

在这里插入图片描述
​ 使用bee运行beego项目,bee会先build该beego项目,然后运行此项目。当输出project_name.exe is running的时候,我们的项目已经正常运行了。我们打开浏览器试试。
在这里插入图片描述

​ 输入本地回环地址,就可以看到beego已经输出宣传页面了。我们继续来看一看beego的目录,conf文件夹是放着Beego整个项目的基础配置,bee已经为我们自动的创建了一个模板conf。还有其他的配置,后面我们用到了再进行补充。

├── conf           //配置文件
│   └── app.conf

//app.conf文件的内容
appname = Yourprojectname   //beego项目的名称
httpport = 80   
//beego默认是开启8080端口,我在这儿将它修改为了80端口,若修改为其余端口,在浏览器打开需要使用回环地址加上端口的形式访问
runmode = dev
//运行模式,这里的默认模式是开发模式

​ 接下来,继续分析Beego的主文件main.go,其代码结构如下所示,首先我们需要指定包,主文件对应了main包。import引入了项目的routers包,以及beego的sdk。可以看到,在beego引入routers文件夹的前面有一个下的下划线,当这样引用时,go语言解释器会首先去寻找routers下面的init函数,然后执行init函数后再跳回主文件。然后在程序的main方法里面,直接使用beego.run就可以了。

package main

import (
	_ "WeiZsec/routers"   //routers里面放的是后端的路由(也就是url所指定的路径对应到处理函数处理任务)
	"github.com/astaxie/beego" //引入Beego的sdk
)

func main() {
	beego.Run()
}

​ routers做为理由,是后端程序的门牌所在,我们下面看看里面是怎样进行路由<---->函数对应的。在router包里面,会存在一个init函数,这个函数里面,写的是需要路由的链接比如(/),代表直接访问时候的输出。后面&controllers.MainController就是当我们访问域名的时候的输出。这就是MVC中的C(控制器)。

package routers

import (
	"WeiZsec/controllers" //引用controller包
	"github.com/astaxie/beego" //引入Beego的sdk
)

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

}

​ controller包是为路由对应处理函数的包,当用户访问某个链接,或者前端需要某些数据的时候,会发送一段http请求,经过路由转到对应的controller函数来处理。下面就是controller包的代码内容。

package controllers

import (
	"github.com/astaxie/beego" //引入Beego的sdk
)

//创建一个结构体,并添加beego.Controller函数组合,就可以使用该结构体去获取http请求传回来的内容
type MainController struct {
	beego.Controller
}
Get()方法
//beego.Controller实现了Init、Prepare、Post、Get、Delete、Head等函数,这儿重写了Get()函数
func (c *MainController) Get() {
    //在get函数里面,我们可以使用c.data来定义我们传输给模板的内容,相当于键值对
	c.Data["Website"] = "beego.me"
	c.Data["Email"] = "astaxie@gmail.com"
    
    //传入两个键值之后,引入了主页面模板,相当于是MVC中的View层
	c.TplName = "index.tpl"
}

​ 下面我们来看一看index.tpl文件,可以发现在文件里面直接使用{{.Website}},就能获取到我们上面定于的“beego.me"的值,同理{{.Email}}也是。

<!DOCTYPE html>

<html>
<head>
  <title>Beego</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
  <header>
    <h1 class="logo">Welcome to Beego</h1>
    <div class="description">
      Beego is a simple & powerful Go web framework which is inspired by tornado and sinatra.
    </div>
  </header>
  <footer>
    <div class="author">
      Official website:
      <a href="http://{{.Website}}">{{.Website}}</a> /
      Contact me:
      <a class="email" href="mailto:{{.Email}}">{{.Email}}</a>
    </div>
  </footer>
  <div class="backdrop"></div>

  <script src="/static/js/reload.min.js"></script>
</body>
</html>

​ 就这样我们基本上的了解了beego的安装部署,以及简单的了解了beego的目录结构。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。beego 的架构beego 的整体设计架构如下所示:       beego 是基于八大独立的模块构建的,是一个高度解耦的框架。当初设计 beego 的时候就是考虑功能模块化,用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块,例如:你可以使用 cache 模块来做你的缓存逻辑;使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块,这也是 beego 为什么受欢迎的一个原因。大家如果玩过乐高的话,应该知道很多高级的东西都是一块一块的积木搭建出来的,而设计 beego 的时候,这些模块就是积木,高级机器人就是 beego。至于这些模块的功能以及如何使用会在后面的文档会逐一介绍。beego 的执行逻辑      既然 beego 是基于这些模块构建的,那么他的执行逻辑是怎么样的呢?beego 是一个典型的 MVC 架构,他的执行逻辑如下图所示:beego 项目结构一般的 beego 项目的目录如下所示:从上面的目录结构我们可以看出来 M(models 目录)、V(views 目录)和 C(controllers 目录)的结构, main.go 是入口文件。你可以通过 bee 工具来新建项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值