大家好,今天开始和大家一起借助goweb+beego开发一个博客系统。
1、beego是一个使用Go语言来开发WEB引用的GoWeb框架,该框架起始于2012年,由一位台湾的程序大牛编写并进行公开,其目的就是为大家提供一个高效率的web应用开发框架。该框架采用模块封装,使用简单,容易学习。方便技术开发者快速学习并进行实际开发。对程序员来说,beego掌握起来非常简单,只需要关注业务逻辑实现即可,框架自动为项目需求提供不同的模块功能。
2、beego的一些特性:
1)简单化:RESTful支持,经典的MVC模型;可以使用bee工具提高开发效率,如 键控代码修改进行热编译,自动测试代码,自动打包部署等丰富的开发调试功能。
2)智能化:beego框架封装了路由模块,支持智能路由,智能监控,并且可以监控内存消耗,CPU使用以及goroutine的运行情况,方便开发者对线上应用 进行监控分析。
3)模块化:beego根据功能对代码进行解耦封装,形成了Session,Catch,Log,配置解析,性能监控,上下文操作,ORM等独立的模块,方便开发者使用。
4)高性能:beego采用Go原生的HTTP请求,goroutine的并发 效率可以应付大流量的web应用和API应用。
面试的时候可能会问到这些特性,需要特别记一下,当然,在后面的开发过程中也能真实感受到这些特性所带来的便利。
1、我们使用命令:go get http://github.com/astaxie/beego 来安装 beego框架,之后使用:go get github.com/beego/bee 来安装命令行工具bee;
【注意】:
1)可以通过Git下clone好golang.org和google.golang.org里面常用的包到本地src目录下,方便beego框架的安装;
2)git clone很慢,可以将以下内容添加到C:\Windows\System32\drivers\etc\hosts文件中并保存,可以加快下载速度;
github.com 13.229.188.59
http://github.global.ssl.fastly.Net 151.101.229.194
3)对于下载报错的一些包如mysql,可以进入到对应的目录下,单独git clone下来,后面加上--depth=1
参数会更快一些;
4)安装完bee工具后,在bin目录下会生成一个bee.exe的可执行文件,命令行输入bee version
检查是否安装成功;
2、安装完beego后可以在src下建一个main.go文件,编译执行如下内容:
package main
import “github.com/astaxie/beego”
func main() {
beego.Info(“第一个beego案例”)
beego.Run(“localhost:8080”)
}
发现后台是有日志打印的,之后通过访问本地页面:http://localhost:8080,返回404,这是因为没有给它指定默认的页面,不过后台有日志打印,说明前端和后台的交互是没有问题的。
3、引入bee工具
1)bee工具有什么用:
bee是一个开发工具,是协助Beego框架开发项目时进行创建项目,运行项目,热部署等相关的项目管理的工具。beego是源码,负责开发,bee是工具,负责构建和管理项目。比如说热部署,就是在修改代码的时候,可以不用停止服务后重新启动,可以边改代码,边看界面效果,很大程度上提高了开发效率。
2)bee的几个常用命令
bee工具安装成功后,可以在命令行中输入"bee"查看具体的bee 命令:
* **new命令:**
```
bee new ProjectName
```
该命令表示新建一个全新的web项目,有一点需要注意:该命令必须在src目录下执行,才能生效,自动生成web项目的目录结构。如果在其他目录下面执行bee new命令,也同样会是在src目录下面生成对应新项目的目录结构,这是bee工具在构建项目的时候默认寻找创建的目录。
* **api命令:**
```
bee api ProjectNames
```
该命令表示用来创建开发API应用。很多用户写前端的后台接口也是通过go来写,因此bee专门提供了一个写api接口应用的命令。通过目录结构可以看到,和Web项目相比,API项目少了static和views目录,多了一个test目录,test是用来进行写测试用例代码的。
* **run命令:**
```
bee run
```
命令用来运行项目,并且能够通过监控文件系统,实时进行代码的热部署更新。也就是,我们代码逻辑进行了修改,不用停止应用,在前端页面就能看到改变。
* **pack命令:**
```
bee pack
```
pack命令用来发布应用的时候的大包操作,该命令会把项目大包成zip包,然后我们就可以在部署的时候直接把大包后的项目上传到服务器,然后解压进行部署。
* **version命令:**
```
bee version
```
version命令来查看当前bee,beego,go的版本。
1)创建项目:bee new BlogSys,之后会在src目录下创建一个名为BlogSys的项目,目录结构如下:
├── conf
│ └── app.conf
├── controllers
│ └── default.go
├── main.go
├── models
├── routers
│ └── router.go
├── static
│ ├── css
│ ├── img
│ └── js
├── tests
│ └── default_test.go
└── views
└── index.tpl
【注意】使用Git bash窗口创建项目可能会创建到bin目录下,Git版本:(待补充),最好在cmd命令行通过bee工具创建项目
2)运行项目:bee run,需要将路径切换到项目路径下执行该命令,执行结果:
bee run
13-11-25 09:53:04 [INFO] Uses 'BlogSys' as 'appname'
13-11-25 09:53:04 [INFO] Initializing watcher...
13-11-25 09:53:04 [TRAC] Directory(/gopath/src/BlogSys/controllers)
13-11-25 09:53:04 [TRAC] Directory(/gopath/src/BlogSys/models)
13-11-25 09:53:04 [TRAC] Directory(/gopath/src/BlogSys)
13-11-25 09:53:04 [INFO] Start building...
13-11-25 09:53:16 [SUCC] Build was successful
13-11-25 09:53:16 [INFO] Restarting BlogSys ...
13-11-25 09:53:16 [INFO] ./BlogSys is running...
3)浏览器http:\\localhost:8080
登录本地页面,查看运行结果如下:
表示服务器开启成功。
git clone https://e.coding.net/robinqiwei/googleprotobuf.git protobuf --depth=1
2、安装bee工具,报参数错误 ,一般是go module没启用
set GO111MODULE=on