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 的第一个路径里。




 
原文地址:https://www.cnblogs.com/winyh/p/11153975.html