之前的文章都是一种无状态的请求,在处理有状态的请求时,如用户登录的场景就不行了,web系统通常使用cookie或者session来记录用户状态,本文记录一下gin框架下cookie与session的使用。 读取cookie 在gin.Con...
使用gin搭建api后台系统之中间件开发
在之前的文章中,基本上都是使用的默认的 gin.Default() 来初始化一个引擎,之后再调用引擎的Run方法来运行一个web服务,现在如果有个需求,某些api只有管理员权限的才可以进行访问,非管理员的就很401,我们可以...
使用gin搭建api后台系统之redis
redis 在web系统中有着非常重要的地位,可以充当缓存,消息队列,分步式锁等,本文介绍一下使用go-redis这个库来简单地操作redis。 环境准备 使用docker 本地启一个redis docker run --name myredis -p 63...
golang中map与切片的函数传参
在golang 的函数参数,如果参数是值类型的话,如果在函数中修改参数值是不会影响原变量的,因为在函数操作中是会进行一次值拷贝的,如果希望函数的修改影响原变量,则需要传指针方式。如以下代码,是不会改变原变...
golang中的锁
在golang中,goroutine 可以理解为其它语言中的线程,在其它语言中存在的数据竞态的问题,在golang中同样存在 本文记录一下数据竞态与各种锁的使用 race condition 竞争状态 这个词也没有听起来很高大上,...
golang中锁Mutex与通道channel的选择
Mutex和channel 都可以在并发环境下对资源进行保护,避免竞态, channel 在 golang 中一直被追捧,但是既然都能解决问题,但为什么还要弄两个东西呢? 查阅一些文章,发现有些时候对于channel过于追捧了。有时...
golang中的strings.Contains
golang中的字符串操作strings.Contains package main import ( "fmt" "strings" ) //golang字符串操作 func main(){ s := "hello world hello world" str := ...
vue项目使用dayjs
下面简单介绍一下在vue项目i中如何使用dayjs,具体步骤如下所示: 第一步安装依赖 npm install dayjs --save 在main.js中引入dayjs,并将dayjs放到vue原型上 var dayjs = require('dayjs'); Vue.prototyp...
gorm join 多表重复字段as
产品模型 type ProductAttribute struct { Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` Name string `json:"name" gorm:"column:name"` // 名...
mysql数据库中group by和sum一起使用语句
一、案例1 还记得我们以前讲过的用SUM这个mysql函数来查出数据表中所有的人的总数和吧?当然那个时候是一个整体的和,如果现在我们要查询的是男生和女生的各自的总年龄怎么查呢?查询的sql语句又该怎么写呢?其...