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

Beego从0开始-1-Beego环境部署以及项目创建_第1张图片
​ 使用bee运行beego项目,bee会先build该beego项目,然后运行此项目。当输出project_name.exe is running的时候,我们的项目已经正常运行了。我们打开浏览器试试。
Beego从0开始-1-Beego环境部署以及项目创建_第2张图片

​ 输入本地回环地址,就可以看到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"] = "[email protected]"
    
    //传入两个键值之后,引入了主页面模板,相当于是MVC中的View层
	c.TplName = "index.tpl"
}

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



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

<body>
  <header>
    <h1 class="logo">Welcome to Beegoh1>
    <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的目录结构。

你可能感兴趣的:(Go)