
golang/gin
weixin_39366520
这个作者很懒,什么都没留下…
展开
-
Go viper 配置文件读取工具
安装: go get github.com/spf13/viper1: 新建viper// 直接使用默认对象viper.GetInt("count")// 获取全局Viper对象globalViper := viper.GetViper()// 新建Viperconf := viper.New()conf.SetConfigFile("config.yaml")2:读取配置文件 config.AddConfigPath(path) //设置读取的文件路径原创 2022-05-09 11:52:05 · 231 阅读 · 0 评论 -
sync.Mutex 添加锁
sync 包提供了两种锁类型:sync.Mutex 和 sync.RWMutex。区别:Mutex 是最简单的一种锁类型,同时也比较暴力,当一个 goroutine 获得了 Mutex 后,其他 goroutine 就只能乖乖等到这个 goroutine 释放该 Mutex。RWMutex 相对友好些, 单写多读模型。在读锁占用的情况下,会阻止写,但不阻止读,也就是多个 goroutine 可同时获取读锁(调用 RLock() 方法;而写锁(调用 Lock() 方法)会阻止任何其他 gorout原创 2022-05-09 11:31:24 · 240 阅读 · 0 评论 -
sync.map解决了协程下map的死锁
sync包提供了基本的同步基元,如互斥锁Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 // 创建一个int到int的映射 m := make(map[int]int) // 开启一段并发代码 go func() { // 不停地对map进行写入 for { m[1] = 1 } }() // 开启一段并发代码 go func() {原创 2022-05-09 11:28:14 · 383 阅读 · 0 评论 -
os包常用的方法
1:os.Getwd() 函数获取当前工作目录,即获取启动http服务的文件的目录。 例如项目文件夹cmd/api/main.go ,使用go run main.go启用,不管在项目哪里打印os.Getwd()返回的都是项目文件夹cmd/api2:os.Chmod(name string, mode FileMode) error //更改文件的权限os.Exit(0) 系统退出,并返回code,其中0表示执行成功并退出os.Chown(name string, ui...原创 2022-05-09 11:23:33 · 371 阅读 · 0 评论 -
路由和路由组
router.GET("/someGet", getting) router.POST("/somePost", posting) router.PUT("/somePut", putting) router.DELETE("/someDelete", deleting) router.PATCH("/somePatch", patching) router.HEAD("/someHead", head) router.OPTIONS("/someOptions", options)...原创 2022-05-07 11:42:35 · 214 阅读 · 0 评论 -
gin重定向
1:使用redirect重定向,地址栏显示新的跳转地址r.GET("/test", func(c *gin.Context) { c.Redirect(http.StatusMovedPermanently, "http://www.google.com/")})2:使用handleContext()重定向 ,访问test显示test2的内容,但是路由还是testr.GET("/test", func(c *gin.Context) { c.Request.URL.Path =原创 2022-05-07 10:59:20 · 696 阅读 · 0 评论 -
gin加载模板
gin加载模板,例如app/template/activitydetail.tmpl错误使用 "app/template/activitydetail.tmpl",直接在c.HTML中声明路径,golang仍然找不到,c.HTML(http.StatusOK, "app/template/activitydetail.tmpl", gin.H{ "Title": "2022-07-15胭宝生日", "Des": "祝胭宝生日快乐", })正确使用...原创 2022-05-07 10:35:50 · 689 阅读 · 0 评论 -
gin设置http服务
第一步:设置main 开启web服务package mainimport ( "ginproject1/route" "net/http" "time" "golang.org/x/sync/errgroup")var ( g errgroup.Group)func main() { server01 := &http.Server{ Addr: ":9090", Han...原创 2022-05-07 10:34:36 · 521 阅读 · 0 评论 -
gin加载静态文件
gin加载静态文件:静态文件必须先声明:否则模板中调用加载不出来func main() { router := gin.Default() router.Static("/assets", "./assets") router.StaticFS("/more_static", http.Dir("my_file_system")) router.StaticFile("/favicon.ico", "./resources/favicon.ico") // 监听并在 0.0.0.0:8原创 2022-05-07 10:32:13 · 1057 阅读 · 0 评论 -
gin获取http请求参数
1: 获取路由参数 c.Param(“参数名称") // 此 handler 将匹配 /user/john/ 和 /user/john/send // 如果没有其他路由匹配 /user/john,它将重定向到 /user/john/ router.GET("/user/:name/*action", func(c *gin.Context) { name := c.Param("name") action := c.Param("action") message := name +原创 2022-05-07 10:28:45 · 758 阅读 · 1 评论