首頁>技術>

go,beego

使用new 命令

通過上篇文章,我們已經知道可以使用new建立一個新專案,現在我們就來使用它建立一個hello專案

bash 1行

bee new hello

bee會自動在 $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 = dev

app.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"

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Token,Cookie、Session傻傻分不清楚?
  • 延伸閱讀