beego簡介
Beego是一個快速開發Go應用的http框架,可用於快速開發Api、web及后端服務等各種應用,是一個RESTful框架。
beego的架構
Beego由八個獨立模塊構建,是一個高度解耦的應用,用戶可以不是用beego的http邏輯使用里面的任意模塊。具體架構設計如下:
beego執行邏輯
beego是一個經典的mvc框架,它的執行邏輯如下:
與之對應的項目目錄結構如下:
├── conf
│ └── app.conf ├── controllers │ ├── admin │ └── default.go ├── main.go ├── models │ └── models.go ├── static │ ├── css │ ├── ico │ ├── img │ └── js └── views ├── admin └── index.tpl
我們可以看出mian.go是入口文件,controllers是邏輯控制模塊,models是模型模塊,views是視圖模塊。
beego的安裝
beego框架的安裝方法非常簡單,使用一下指令即可
go get github.com/astaxie/beego
go語言在這一點我認為是做的比較好的,直接用指令就能直接下載安裝好。當然上述指令需要git支持。用戶同樣可以在github上下載源代碼然后放置到GOPATH下的src/github.com/astaxie/目錄下,然后使用go install
就可直接安裝。
beego還有一個工具bee用於協助快速開發beego項目,通過bee可以很容易的進行構建、熱編譯、開發、測試和部署。
bee工具可以使用go指令直接下載安裝:
go get github.com/beego/bee
部分用戶可能在安裝了bee工具后運行bee時會遇到被系統killed的問題,這個問題作者也沒說明具體是什么原因,遇到這種問題的用戶可以直接從github.com/beego/bee上clone下載最新源碼到GOPATH\src\github.com\beego\下然后checkout hot-fix-support分支,然后執行go install
指令進行手動安裝即可。
執行
bee version
若出現以下信息便說明安裝成功且運行正常:
$ bee version ______ | ___ \ | |_/ / ___ ___ | ___ \ / _ \ / _ \ | |_/ /| __/| __/ \____/ \___| \___| v1.8.1 ├── Beego : Beego is not installed. Please do consider installing it first: https://github.com/astaxie/beego ├── GoVersion : go1.8 ├── GOOS : darwin ├── GOARCH : amd64 ├── NumCPU : 4 ├── GOPATH : /Users/alpher/go ├── GOROOT : /usr/local/Cellar/go/1.8/libexec ├── Compiler : gc └── Date : Wednesday, 5 Apr 2017
創建beego項目
安裝完以上工具我們就可以直接通過bee new projectName
來構建一個beego框架的項目
$ bee new beegoDemo
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.8.1
2017/04/05 10:24:49 INFO ▶ 0001 Creating application...
create /Users/alpher/go/src/beegoDemo/ create /Users/alpher/go/src/beegoDemo/conf/ create /Users/alpher/go/src/beegoDemo/controllers/ create /Users/alpher/go/src/beegoDemo/models/ create /Users/alpher/go/src/beegoDemo/routers/ create /Users/alpher/go/src/beegoDemo/tests/ create /Users/alpher/go/src/beegoDemo/static/ create /Users/alpher/go/src/beegoDemo/static/js/ create /Users/alpher/go/src/beegoDemo/static/css/ create /Users/alpher/go/src/beegoDemo/static/img/ create /Users/alpher/go/src/beegoDemo/views/ create /Users/alpher/go/src/beegoDemo/conf/app.conf create /Users/alpher/go/src/beegoDemo/controllers/default.go create /Users/alpher/go/src/beegoDemo/views/index.tpl create /Users/alpher/go/src/beegoDemo/routers/router.go create /Users/alpher/go/src/beegoDemo/tests/default_test.go create /Users/alpher/go/src/beegoDemo/main.go 2017/04/05 10:24:49 SUCCESS ▶ 0002 New application successfully created!
項目創建好后,我們需要進入到項目中,使用bee run projectName
運行新創建的beego項目,使用bee run
命令的目的是達到熱編譯的效果,能實時查看到我們修改的內容效果。
$ bee run beegoDemo
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.8.1
2017/04/05 10:29:29 INFO ▶ 0001 Using 'beegoDemo' as 'appname' 2017/04/05 10:29:29 INFO ▶ 0002 Initializing watcher... beegoDemo/controllers beegoDemo/routers beegoDemo 2017/04/05 10:29:31 SUCCESS ▶ 0003 Built Successfully! 2017/04/05 10:29:31 INFO ▶ 0004 Restarting 'beegoDemo'... 2017/04/05 10:29:31 SUCCESS ▶ 0005 './beegoDemo' is running... 2017/04/05 10:29:31 [I] [asm_amd64.s:2197] http server Running on http://:8080
這樣我們的應用就已經在8080端口運行了,訪問localhost:8080就可以看到如下效果了: