1. 程式人生 > >beego框架學習(一)

beego框架學習(一)

邏輯 ali fault serve 視圖 解耦 正常 mman stat

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就可以看到如下效果了:

技術分享圖片

beego框架學習(一)