一.前言
1.Beego框架是go語言開發的web框架。
2.beego官網網址: https://beego.me/
二.項目結構
基於MVC架構,其基本目錄如下
- conf文件夾:放的是項目有關的配置文件
- Controllers:存放主要的業務代碼
- main.go:項目的入口文件
- Models:存放的是數據庫有關內容
- routers:存放路由文件,路由作用是根據不同的請求指定不同的控制器
- static:存放靜態資源,包括圖片,html頁面,css樣式,js文件等
- tests:測試文件
- Views:存放視圖有關內容
三.環境搭建
go get -u -v github.com/astaxie/beego
go get -u -v github.com/beego/bee
ps:
1.go get使用時的附加參數
附加參數 | 備 注 |
---|---|
-v | 顯示日誌 |
- | 下載丟失的包,但不會更新已經存在的包 |
2.go get無法訪問問題
如果你遇到此類問題,可以先掛上代理,保證google能訪問.
然後打開cmd執行以下命令即可
set http_proxy=127.0.0.1:1080
set https_proxy=127.0.0.1:1080
3.離線搭建beego環境
A.步驟一.下載本地zip包
如果你沒有網或者沒有搭建git環境,可以先去以下地址下載本地zip
github.com/astaxie/beego
github.com/beego/bee
B.解壓至指定目錄
bee.zip解壓至C:\Users\你的用戶名\go\src\github.com\beego\bee目錄下
beego.zip你隨意
C.安裝bee
執行
go install github.com\beego\bee
此時會在C:\Users\你的用戶名\go\bin 目錄下生成一個bee.exe文件
cmd切換至該目錄,執行
bee new 你的項目名稱
即可新建一個beego項目
四.環境搭建
安裝好之後,運行
bee new 你的項目名稱
來創建一個項目,注意:通過bee創建的項目代碼都是在$GOPATH/src 目錄下
五.運行項目
1.進入項目目錄執行 bee run 命令,在瀏覽器輸入網址:127.0.0.1:8080
2.使用goLand打開項目,找到main.go文件,運行
3.使用goLand打開項目,在項目名稱上右擊,運行
***注意:只有使用bee run命令該beego項目才具有熱更新功能,推薦使用
六.beego運行流程分析
七.controllers
打開controllers/default.go文件內容如下
package controllers
import (
"github.com/astaxie/beego"
)
type MainController struct {
beego.Controller
}
func (c *MainController) Get() {
c.Data["Website"] = "beego.me"
c.Data["Email"] = "[email protected]"
c.TplName = "index.tpl"
}
其中,Get方法下
- c.TplName 代表指向的html
- c.Data[“key”] = “value” 爲map類型,可在html中使用
<h1>{{.key}}</h1>
八.Router
package routers
import (
"kingtest1/controllers"
"github.com/astaxie/beego"
)
func init() {
//所有路徑都由MainController處理
beego.Router("/", &controllers.MainController{})
//參數1:http相對路徑
//參數2:該路徑對應控制器,
// 參數3:不傳默認get請求由GET()方法處理,post請求由POST()方法處理
beego.Router("/index", &controllers.MainController{})
//修改get請求爲GetFuc()方法處理
// !!!!注意:POST()方法不再處理post請求
beego.Router("/index", &controllers.MainController{},"get:GetFuc")
//修改get請求爲GetFuc()方法處理 Post方法爲PostFuc()
beego.Router("/index", &controllers.MainController{},"get:GetFuc;post:PostFuc")
//get,post請求都由APIFuc()處理
beego.Router("/index", &controllers.MainController{},"get,post:APIFuc")
//所有請求都由AllFuc()方法處理
beego.Router("/index", &controllers.MainController{},"*:AllFuc")
}
***注意:參數三隻修改Get請求的指向方法,會導致其他請求如POST的默認指向失效