Golang 開發框架 gin 項目時筆記


1.模板引入時報錯:

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/

發現出現報錯:html/template: "post/index.tmpl" is undefined

 

如果非要按照官方文檔,請注意模板文件開頭一定要定義

{{ define "posts/index.tmpl" }}
<html><h1>
	{{ .title }}
</h1>
<p>Using posts/index.tmpl</p>
</html>
{{ end }}

  

下載:

go get   github.com/jinzhu/gorm

go get   github.com/go-sql-driver/mysql

這樣的庫比較慢時,呵呵呵,等着吧,只要不自動失敗就行,最后一般能下載成功的。。。

 

項目依賴包最好放在項目目錄下:否則

  • 每一個新來的人都要go get很多次
  • 拉下來的版本還可能不一樣
  • 線上部署更麻煩了

可在項目其他目錄書寫包文件,然后在其他目錄引入這個包,調用時默認時包 package name

包里的init方法 可以初始化包

多個文件可以定義為同一個包名, 同一個包下,變量可以公用。

 

model 定義表結構體時,加入

gorm.Model
新增數據時會自動維護表的 created_at 和 updated_at 字段


init函數在你導入該package時程序會自動調用init函數

在剛接觸GO語言時候,我相信你也會有這種困惑,為什么有的函數名前面有輸入參數,而一些卻沒有,它們是否有差別?確實有差別,沒有輸入參數,是一般的函數;
有輸入參數,是結構的方法,輸入參數叫做“方法接收者”!GO語言沒有類,方法都定義在結構上了!!
參考鏈接:https://www.codetd.com/article/6771261

g
o get XXX 下載的包,默認會安裝在GOPATH 的第一個路徑里。

 
         
         
        
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM