在上一篇大概瞭解了Golang的簡單語法及函數等相關後,我們進入到Gin框架的安裝
一、安裝Gin包管理工具以及類庫
1、安裝govendor(包管理工具):
- 必須安裝git
go get github.com/kardianos/govendor
2、安裝一些輔助的類庫:
- 由於直接訪問golang.org會因爲需要梯子而無法訪問,有的就算有梯子也是無法訪問的
- 在這裏Gin官方就很友好了,把鏡像放到了Gin的官方Github上
go get -u -v github.com/ramya-rao-a/go-outline
3、接下來安裝go-outline
和 goreturns。
git clone https://github.com/golang/tools.git $GOPATH/src/golang.org/x/tools
go get -v github.com/ramya-rao-a/go-outline
go get -v github.com/sqs/goreturns
go get -v github.com/rogpeppe/godef
4、以上安裝好Go的最基本配置後,最後一步安裝Gin
go get -u -v github.com/gin-gonic/gin
5、在這個情況下,很多同學都會因爲被牆了,而導致安裝失敗
不用着急,在這裏其實Golang在Github上已經建立了鏡像庫,這個開源項目goproxy.io已經實現了我們想要的東西,我們只需要配置一下環境變量代理到goproxy.io上就可以正常下載被強的包了
- 開啓 Go module 功能
- 如果您使用的 Go 版本是 1.13 及以上 (推薦)
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
設置完上面幾個環境變量後,您的 go
命令將從公共代理鏡像中快速拉取您所需的依賴代碼了。私有庫的支持請看這裏。
- 如果您使用的 Go 版本是 1.12 及以下
- Bash (Linux or macOS)
# 啓用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 環境變量
export GOPROXY=https://goproxy.io
或者,根據文檔可以把上面的命令寫到.profile
或.bash_profile
文件中長期生效。
- PowerShell (Windows)
# 啓用 Go Modules 功能
$env:GO111MODULE="on"
# 配置 GOPROXY 環境變量
$env:GOPROXY="https://goproxy.io"
現在,當你構建或運行你的應用時,Go 將會通過 goproxy.io 獲取依賴,具體可訪問:https://goproxy.io/zh/ 查看配置
- 上面配置完後,我們就可以下載被牆的包了
go get -u -v github.com/gin-gonic/gin
6、下載好後測試一下是否能成功,創建main.go寫入
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "搭建完成")
})
r.Run(":8888") // 端口號8888
}
7、運行main.go
go run main.go
8、訪問http://127.0.0.1:8888/
二、熱加載調試 Hot Reload
Python 的 Flask框架,有 debug 模式,啓動時傳入 debug=True 就可以熱加載(Hot Reload, Live Reload)了。即更改源碼,保存後,自動觸發更新,瀏覽器上刷新即可。免去了殺進程、重新啓動之苦。
1、Gin 原生不支持,但有很多額外的庫可以支持。例如
github.com/codegangsta/gin
github.com/pilu/fresh
2、這次,我們採用fresh
go get -v -u github.com/pilu/fresh
3、安裝好後,把go run main.go執行換成fresh執行,
每次更改源文件,代碼將自動重新編譯
- 但在這塊有的同學可能會碰到下面的問題
- 這個是因爲項目根目錄下面沒有go.mod文件,創建這個文件,這個文件裏面用來管理module的。
- 我們在根目錄下面執行
go mod code // code是項目名
- 這個時候會默認生成一個.mod的文件,接下來我們重新執行fresh
- 執行成功後,編輯文件後,會自動檢測並且編譯,這樣就可以免去了每次修改後都要重啓的痛苦了
這樣Gin的安裝以及簡單使用就結束了,Golang學習文章會持續更新,謝謝