1.模板引入時報錯:html
func main() { router := gin.Default() router.LoadHTMLGlob("templates/**/*") router.GET("/posts/index", func(c *gin.Context) { c.HTML(http.StatusOK, "posts/index.tmpl", gin.H{ "title": "Posts", }) }) router.GET("/users/index", func(c *gin.Context) { c.HTML(http.StatusOK, "users/index.tmpl", gin.H{ "title": "Users", }) }) router.Run(":8080") }
// 須要去掉 / posts 和 users ,標記紅色的字符串去掉就正常了
按照官網寫法,https://gin-gonic.com/zh-cn/docs/examples/html-rendering/mysql
發現出現報錯:html/template: "post/index.tmpl" is undefinedgit
若是非要按照官方文檔,請注意模板文件開頭必定要定義github
{{ define "posts/index.tmpl" }} <html><h1> {{ .title }} </h1> <p>Using posts/index.tmpl</p> </html> {{ end }}
下載:sql
go get github.com/jinzhu/gorm
segmentfault
go get github.com/go-sql-driver/mysqlide
這樣的庫比較慢時,呵呵呵,等着吧,只要不自動失敗就行,最後通常能下載成功的。。。函數
項目依賴包最好放在項目目錄下:不然post
go get
不少次可在項目其餘目錄書寫包文件,而後在其餘目錄引入這個包,調用時默認時包 package namespa
包裏的init方法 能夠初始化包
多個文件能夠定義爲同一個包名, 同一個包下,變量能夠公用。
model 定義表結構體時,加入
gorm.Model
新增數據時會自動維護表的 created_at 和 updated_at 字段
init函數在你導入該package時程序會自動調用init函數
在剛接觸GO語言時候,我相信你也會有這種困惑,爲何有的函數名前面有輸入參數,而一些卻沒有,它們是否有差異?確實有差異,沒有輸入參數,是通常的函數;
有輸入參數,是結構的方法,輸入參數叫作「方法接收者」!GO語言沒有類,方法都定義在結構上了!!
參考連接:https://www.codetd.com/article/6771261
go get XXX 下載的包,默認會安裝在GOPATH 的第一個路徑裏。