当前位置: 首页 > news >正文

zdpgo_gin_sessions 专为zdpgo_gin打造的session框架,当需要使用session存储数据的时候可以考虑使用此框架

zdpgo_gin_sessions

专为zdpgo_gin打造的session框架,当需要使用session存储数据的时候可以考虑使用此框架

安装


使用教程

cookie

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"sessions "github.com/zhangdapeng520/zdpgo_gin_sessions""github.com/zhangdapeng520/zdpgo_gin_sessions/cookie"
)func main() {r := gin.Default()store := cookie.NewStore([]byte("secret"))r.Use(sessions.Sessions("mysession", store))r.GET("/incr", func(c *gin.Context) {session := sessions.Default(c)var count intv := session.Get("count")if v == nil {count = 0} else {count = v.(int)count++}session.Set("count", count)session.Save()c.JSON(200, gin.H{"count": count})})r.Run(":8000")
}

memory store

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"sessions "github.com/zhangdapeng520/zdpgo_gin_sessions""github.com/zhangdapeng520/zdpgo_gin_sessions/memstore"
)func main() {r := gin.Default()store := memstore.NewStore([]byte("secret"))r.Use(sessions.Sessions("mysession", store))r.GET("/incr", func(c *gin.Context) {session := sessions.Default(c)var count intv := session.Get("count")if v == nil {count = 0} else {count = v.(int)count++}session.Set("count", count)session.Save()c.JSON(200, gin.H{"count": count})})r.Run(":8000")
}

memory cache ascii

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"sessions "github.com/zhangdapeng520/zdpgo_gin_sessions""github.com/zhangdapeng520/zdpgo_gin_sessions/memcached""github.com/zhangdapeng520/zdpgo_gin_sessions/memcached/memcache"
)func main() {r := gin.Default()store := memcached.NewStore(memcache.New("localhost:11211"), "", []byte("secret"))r.Use(sessions.Sessions("mysession", store))r.GET("/incr", func(c *gin.Context) {session := sessions.Default(c)var count intv := session.Get("count")if v == nil {count = 0} else {count = v.(int)count++}session.Set("count", count)session.Save()c.JSON(200, gin.H{"count": count})})r.Run(":8000")
}

memory cache binary

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"sessions "github.com/zhangdapeng520/zdpgo_gin_sessions""github.com/zhangdapeng520/zdpgo_gin_sessions/memcached""github.com/zhangdapeng520/zdpgo_gin_sessions/memcached/mc"
)func main() {r := gin.Default()client := mc.NewMC("localhost:11211", "username", "password")store := memcached.NewMemcacheStore(client, "", []byte("secret"))r.Use(sessions.Sessions("mysession", store))r.GET("/incr", func(c *gin.Context) {session := sessions.Default(c)var count intv := session.Get("count")if v == nil {count = 0} else {count = v.(int)count++}session.Set("count", count)session.Save()c.JSON(200, gin.H{"count": count})})r.Run(":8000")
}

redis

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"sessions "github.com/zhangdapeng520/zdpgo_gin_sessions""github.com/zhangdapeng520/zdpgo_gin_sessions/redis"
)func main() {r := gin.Default()store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret"))r.Use(sessions.Sessions("mysession", store))r.GET("/incr", func(c *gin.Context) {session := sessions.Default(c)var count intv := session.Get("count")if v == nil {count = 0} else {count = v.(int)count++}session.Set("count", count)session.Save()c.JSON(200, gin.H{"count": count})})r.Run(":8000")
}

gorm mysql

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"gorm "github.com/zhangdapeng520/zdpgo_gorm""github.com/zhangdapeng520/zdpgo_gorm/mysql"sessions "github.com/zhangdapeng520/zdpgo_gin_sessions"gormsessions "github.com/zhangdapeng520/zdpgo_gin_sessions/gorm"
)func main() {db, err := gorm.Open(mysql.Open("root:root@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local"), &gorm.Config{})if err != nil {panic(err)}store := gormsessions.NewStore(db, true, []byte("secret"))r := gin.Default()r.Use(sessions.Sessions("mysession", store))r.GET("/incr", func(c *gin.Context) {session := sessions.Default(c)var count intv := session.Get("count")if v == nil {count = 0} else {count = v.(int)count++}session.Set("count", count)session.Save()c.JSON(200, gin.H{"count": count})})r.Run(":8000")
}

版本历史

v0.1.0

  • 支持常用的session

v0.1.1

  • 包名从zdpgo_sessions改为zdpgo_gin_sessions

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ZKRollup
  • 【LeetCode每日一题】——623.在二叉树中增加一行
  • 工厂模式和策略模式的使用策略及其优缺点比较
  • 【C#】委托/Lambda/事件
  • Python | Leetcode Python题解之第337题打家劫舍III
  • 单细胞课程01-课程简介
  • Qt题目知多少-4
  • 基于python 开发调试rabbitmq - 2
  • 鸿蒙前端开发——工具安装与项目创建
  • Vue2中watch与Vue3中watch对比
  • “论软件开发过程RUP及其应用”写作框架,软考高级,系统架构设计师
  • 使用 GPT-4 Vision 的 CLIP 嵌入来改进多模态 RAG
  • 【运维】JetBrains Gateway (Pycharm) SSH免密连接,改为免密连接
  • 【Material-UI】Floating Action Button (FAB) 详解:基础用法
  • ubuntu22.04不生成core文件
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【个人向】《HTTP图解》阅后小结
  • 2017 前端面试准备 - 收藏集 - 掘金
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • HTTP中的ETag在移动客户端的应用
  • JavaScript新鲜事·第5期
  • js算法-归并排序(merge_sort)
  • leetcode-27. Remove Element
  • MD5加密原理解析及OC版原理实现
  • Octave 入门
  • WebSocket使用
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 浮动相关
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何解决微信端直接跳WAP端
  • 三分钟教你同步 Visual Studio Code 设置
  • 深度学习在携程攻略社区的应用
  • 通过git安装npm私有模块
  • 转载:[译] 内容加速黑科技趣谈
  • NLPIR智能语义技术让大数据挖掘更简单
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • #70结构体案例1(导师,学生,成绩)
  • #Java第九次作业--输入输出流和文件操作
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (03)光刻——半导体电路的绘制
  • (30)数组元素和与数字和的绝对差
  • (C++17) std算法之执行策略 execution
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Java)【深基9.例1】选举学生会
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (七)Flink Watermark
  • (未解决)macOS matplotlib 中文是方框
  • (一)kafka实战——kafka源码编译启动
  • (转)JAVA中的堆栈
  • (转)mysql使用Navicat 导出和导入数据库
  • .ai域名是什么后缀?
  • .Net 4.0并行库实用性演练
  • .net core 源码_ASP.NET Core之Identity源码学习