go,beego
使用new 命令通過上篇文章,我們已經知道可以使用new建立一個新專案,現在我們就來使用它建立一個hello專案
bash 1行
bee new hellobee會自動在 $GOPATH/src目錄下生成hello專案,如下所示:
使用run命令
beego相比於php和.net,不需要我們額外配置Apache或IIS,我們只需要直接使用bee工具即可執行專案。
我們在終端中輸入bee run hello,或者到hello目錄下 輸入bee run ,得到以下資訊:
通過 Built Successfully! 可以看出專案成功編譯了,程式埠為8080。
如果報如下錯誤 :Failed to build the application: can't load package: package .: no Go files in /Users/clown 別慌,我們可以直接到hello目錄底下,執行go run main.go
現在開啟瀏覽器輸入 http://127.0.0.1:8080 看看顯示結果
現在我們切換到終端,可以看到網站訪問的日誌,這對我們除錯網站是非常友好的。
輸出Hello World現在就讓我們來完語言學習的第一步,輸出 hello wold,當然我們現在只關注實現,不涉及其他知識。
首先我們在controllers下新建一個hello.go檔案,定義 Controller,這裡我們定義了一個 struct 為 HelloControllers ,充分利用了 Go 語言的組合的概念,匿名包含了 beego.Controller,這樣我們的 HelloControllers 就擁有了 beego.Controller 的所有方法。然後我們為HelloControllers 重定義Get()方法
12行
package controllersimport "github.com/astaxie/beego"type HelloControllers struct {\tbeego.Controller}func (hello * HelloControllers) Get() {\thello.Ctx.WriteString("hello world")}然後在routers/router.go 新增我們剛剛設定的controller
14行
package routersimport (\t"hello/controllers"\t"github.com/astaxie/beego")func init() { beego.Router("/", &controllers.MainController{}) // "/hello" 是我們訪問的路徑,比如說我們想要呼叫HelloControllers這個控制器 //需要在瀏覽器輸入127.0.0.1:8080/hello beego.Router("/hello",&controllers.HelloControllers{})}現在我們重新開啟一個終端 ,使用 curl命令來執行地址,可以在終端中看到beego輸出了 hello world
當然我們可以用瀏覽器開啟地址,這樣更加直觀一些
我們再次切回到執行bee run 的終端,它確實輸出了 hello的 執行日誌
Hello專案分析1.專案在啟動的時候預設讀取congf資料夾下的app.conf,我們可以在該配置檔案下配置相關資訊。
2.MainController組合了beego.Controller,然而beego.Controller實現ControllerInterface介面,其中就包含了Get方法,我們如果在MainController中不實現Get 方法,會去找beego.controller中的Get方法。
3.beego預設的viewspath是views資料夾,可以通過beego.BConfig.WebConfig.ViewsPath = "myview"或者viewpath=”myviews”設定。
配置檔案我們開啟專案conf檔案下的app.conf,可以看到
3行
appname = hellohttpport = 8080runmode = devapp.conf 預設使用 INI 格式解析,使用者可以通過簡單的配置就可以獲得很大的靈活性,它為鍵值對型別(key=value),可以通過#或;來註釋,有效範圍只限單行。配置檔案中存在section,可以理解為一個模組。
appname 顯而易見是專案名稱,是bee工具執行的專案名稱。
httpport是用來設定埠,專案預設給我設定的8080,所以當我們通過瀏覽器訪問專案的時候要輸入 127.0.0.1:8080。
runmode是用來設定模式的,一共有三種模式:dev,test,prod
開發者模式(dev):開發環境是程式猿們專門用於開發的伺服器,配置可以比較隨意,為了開發除錯方便,一般開啟全部錯誤報告。測試模式(test):一般是克隆一份生產環境的配置,一個程式在測試環境工作不正常,那麼肯定不能把它釋出到生產機上。生產模式(prod):是值正式提供對外服務的,一般會關掉錯誤報告,開啟錯誤日誌。我們可以為不同的模式設定不同的埠例如:
dev 模式下,httpport 是 8080,在 prod 模式下是 8088,在 test 模式下是 8888
6行
[dev]httpport=8080[pord]httpport=8088[test]httpport=8888我們還可以使用:
viewspath 用來設定頁面資料夾,預設為viewsautorender 用來設定是否自動渲染,true為自動渲染,false關閉自動渲染。
4行
#設定view路徑viewspath ="views";關閉渲染AutoRender = false配置檔案的內容很豐富,我們沒有必要把所有的配置資訊寫在一個檔案中,這樣耦合度太高。
我們可以使用 include 包含其他配置檔案,例如:
1行
include "mysql.conf"