Beego框架的简单使用

一、Beego的基础知识

官方网站:https://beego.vip/

Github地址:https://github.com/beego/beego

1、Beego的简介:

        beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。

2、Beego的架构:

1669878607732378.png

beego 是基于八大独立的模块构建的,是一个高度解耦的框架。当初设计 beego 的时候就是考虑功能模块化,用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块,例如:你可以使用 cache 模块来做你的缓存逻辑;使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。

所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块,这也是 beego 如此受欢迎的一个原因。大家如果玩过乐高的话,应该知道很多高级的东西都是一块一块的积木搭建出来的,而设计 beego 的时候,这些模块就是积木,高级机器人就是 beego。至于这些模块的功能以及如何使用会在后面的文档逐一介绍。

3、Beego的执行逻辑:

既然 beego 是基于这些模块构建的,那么它的执行逻辑是怎么样的呢?beego 是一个典型的 MVC 架构,它的执行逻辑如下图所示:

1669878906365106.png

4、Beego的项目代码结构:

├── conf              //配置文件
│   └── app.conf
├── controllers       //控制器
│   ├── admin
│   └── default.go
├── main.go           //项目的主启动文件
├── models            //模块
│   └── models.go
├── static            //静态文件
│   ├── css
│   ├── ico
│   ├── img
│   └── js
└── views             //前端的一些.tpl模板文件
    ├── admin
    └── index.tpl

从上面的目录结构我们可以看出来 M(models 目录)、V(views 目录)和 C(controllers 目录)的结构, main.go 是整个项目的入口文件。


二、新建并启动一个Beego项目

1、在GOPATH/src目录下执行以下命令安装所需依赖:

# 安装Beego
go get github.com/beego/beego/v2@latest

#安装bee工具
go get github.com/beego/bee/v2
## 此步骤会在 $GOPATH/bin 下安装bin.exe,而我们的$GOPATH/bin 目录已经被添加进PATH了,所以bee命令就可以执行了!

//bee工具是一个为了协助快速开发beego项目而创建的项目,通过bee可以很容易的进行beego项目的创建、热编译、开发、测试和部署!

2、通过bee命令创建一个新项目pro01:

D:\GOPATH\src>bee new pro01
2022/12/01 18:52:25.327 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
2022/12/01 18:52:25 INFO     ▶ 0001 Generate new project support go modules.
2022/12/01 18:52:25 INFO     ▶ 0002 Creating application...
        create   D:\GOPATH\src\pro01\go.mod
        create   D:\GOPATH\src\pro01\
        create   D:\GOPATH\src\pro01\conf\
        create   D:\GOPATH\src\pro01\controllers\
        create   D:\GOPATH\src\pro01\models\
        create   D:\GOPATH\src\pro01\routers\
        create   D:\GOPATH\src\pro01\tests\
        create   D:\GOPATH\src\pro01\static\
        create   D:\GOPATH\src\pro01\static\js\
        create   D:\GOPATH\src\pro01\static\css\
        create   D:\GOPATH\src\pro01\static\img\
        create   D:\GOPATH\src\pro01\views\
        create   D:\GOPATH\src\pro01\conf\app.conf
        create   D:\GOPATH\src\pro01\controllers\default.go
        create   D:\GOPATH\src\pro01\views\index.tpl
        create   D:\GOPATH\src\pro01\routers\router.go
        create   D:\GOPATH\src\pro01\tests\default_test.go
        create   D:\GOPATH\src\pro01\main.go
2022/12/01 18:52:25 SUCCESS  ▶ 0003 New application successfully created!

3、用vscode打开我们的pro01项目:

D:\GOPATH\src>cd pro01

D:\GOPATH\src\pro01>code .

# 清理一下go.mod,保留当前用到的依赖,清理掉暂时还没用到的依赖
PS D:\GOPATH\src\pro01> go mod tidy

1669892283891741.png

是不是很方便!

4、此时,项目已经可以直接运行了:

PS D:\GOPATH\src\pro01> bee run
  ......
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.0.4
2022/12/01 18:59:03 INFO     ▶ 0004 Using 'pro01' as 'appname'
2022/12/01 18:59:03 INFO     ▶ 0005 Initializing watcher...
  ......
pro01
2022/12/01 18:59:07 SUCCESS  ▶ 0006 Built Successfully!
2022/12/01 18:59:07 INFO     ▶ 0007 Restarting 'pro01.exe'...
2022/12/01 18:59:07 SUCCESS  ▶ 0008 './pro01.exe' is running...
2022/12/01 18:59:08.636 [I] [parser.go:413]  generate router from comments

2022/12/01 18:59:08.645 [I] [server.go:241]  http server Running on http://:8080

访问本机的8080端口,即可访问当前项目:

1669892538314131.png

5、通过bee创建一个前后端分离的后端项目:

D:\GOPATH\src>bee api pro02
  ......
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.0.4
2022/12/02 15:18:16 INFO     ▶ 0004 Generate api project support go modules.
2022/12/02 15:18:16 INFO     ▶ 0005 Creating API...
        create   D:\GOPATH\src\pro02\go.mod
        create   D:\GOPATH\src\pro02
        create   D:\GOPATH\src\pro02\conf
        create   D:\GOPATH\src\pro02\controllers
        create   D:\GOPATH\src\pro02\tests
        create   D:\GOPATH\src\pro02\conf\app.conf
        create   D:\GOPATH\src\pro02\models
        create   D:\GOPATH\src\pro02\routers\
        create   D:\GOPATH\src\pro02\controllers\object.go
        create   D:\GOPATH\src\pro02\controllers\user.go
        create   D:\GOPATH\src\pro02\tests\default_test.go
        create   D:\GOPATH\src\pro02\routers\router.go
        create   D:\GOPATH\src\pro02\models\object.go
        create   D:\GOPATH\src\pro02\models\user.go
        create   D:\GOPATH\src\pro02\main.go
2022/12/02 15:18:16 SUCCESS  ▶ 0006 New API successfully created!

打开项目后,可以看到项目结构中不再有view目录了:

1669966216570197.png

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐