gin框架

1、go run 文件名
在这里插入图片描述
如遇上面问题:go mod tidy
在这里插入图片描述

2、查看配置信息:go env
在这里插入图片描述

3、windows用set修改配置文件,linux用export修改
在这里插入图片描述

4、中间件
(1)、全局中间件
r.Use(中间件函数名())
(2)、Next()方法
在这里插入图片描述
在这里插入图片描述

(3)、局部中间件
直接将中间件函数名用在路由上
eg: r.GET(“/ce”, MiddleWare(), func(c *gin.Context) {…})
(4)、其他中间件
REST API 端点身份验证
OAuth2身份验证
session验证
jwt验证等

5、cookie和session
// 导入session包
“github.com/gin-contrib/sessions”
// 导入session存储引擎
“github.com/gin-contrib/sessions/cookie”
(1)、cookie
详情见:https://www.topgoer.com/gin%E6%A1%86%E6%9E%B6/%E4%BC%9A%E8%AF%9D%E6%8E%A7%E5%88%B6/cookie%E7%BB%83%E4%B9%A0.html
next()顾名思义就是挂起继续向下⾛,然后执⾏完成下⾯的函数,会反过来最后执⾏该中间件
abort()顾名思义就是终⽌的意思,也就是说执⾏该函数,会终⽌后⾯所有的该请求下的函数。
首先在一个路由中用SetCookie将cookie写入,绿色是写入
然后再从另一个路由中取出,红色是取出;注:也可以使用中间件方式取出
cookie缺点:不安全,明文;增加带宽消耗;可以被禁用;cookie有上限
在这里插入图片描述

(2)、session
学习地址:https://www.cnblogs.com/qzhc/p/13454583.html
创建基于cookie的储存引擎,aaa参数是用于加密的密钥
var store = sessions.NewCookieStore([]byte(“aaa”))
// 设置session中间件,参数mysession,指的是session的名字,也是cookie的名字
// store是前面创建的存储引擎,我们可以替换成其他存储引擎
r.Use(sessions.Sessions(“mysession”, store))
后面的可以在路由中设置和读取session值
// 初始化session对象
session := sessions.Default©
// 读取session值 session.Get(“mysession”) // session是键值对格式数据,因此需要通过key查询数据
// 设置session数据 session.Set(“hello”, “world”)
// 删除session数据 session.Delete(“hello”)
//清空session session.Clear()
// 保存session数据 session.Save()
// 删除整个session session.Clear()
//转发到另一个url c.Request.URL.Path = “/hi” r.HandleContext©

6、结构体验证
直接在创建结构体的时候进行数据的验证:binding
Age int form:"age" binding:"required,gt=10"

7、生成日志文件/验证码
首先创建一个保存日志文件的文件:f, _ := os.Create(“gin.log”)
然后用io写入:gin.DefaultWriter = io.MultiWriter(f)
验证码:https://blog.csdn.net/aaaadong/article/details/90645113

8、后面还有很多内容学习
网址:https://www.topgoer.com/gin%E6%A1%86%E6%9E%B6/%E5%85%B6%E4%BB%96/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/251694.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于在Java中打印“数字”三角形图形的汇总

之前写过一篇利用*打印三角形汇总,网友需要查看可以去本专栏查找之前的文章,这里利用二维数组嵌套循环打印“数字”三角形,汇总如下,话不多说,直接上代码: /*** 打印如下数字三角形图形*/ public class Wo…

计算机网络基础——IP地址基础知识介绍

一、IP地址简介 计算机网络中的三种地址: 应用层的域名地址DNS(domain name system) 或计算机名称 (结构:计算机主机名.机构名.网络名.最高层域名 ) 网络层的 IP 地址 数据链路层的物理地址(就是“硬件地址”,又称为 MAC 地址,查看MAC: ipconfig/all)…

涉密网络的IP查询防护策略

涉密网络的安全性对于维护国家、企业及个人的核心利益至关重要。在当今数字化时代,网络攻击日益猖獗,其中IP查询是攻击者获取目标信息的一种常见手段。本文将探讨涉密网络中防护IP查询的关键策略,以确保网络的机密性和安全性。 1. 专用VPN和…

Webrtc 学习交流

花了几周的时间研究了一下webrtc ,并开发了一个小项目,用来点对点私密聊天 交流传输文件等…后续会继续扩展其功能。 体验地址,大狗子的ID,我在线时可以连接测试到我 f3e0d6d0-cfd7-44a4-b333-e82c821cd927 项目特点 除了交换信令与stun 没…

【JavaWeb】建一个web项目(入门版)

【比较原始的方法】(IDEA社区版不能用的,要用学习版) 第一步:先建好一个模块 第二步:来到Project Structure->Modules->右键想改造成WebApp的模块,看图 第三步:Artifacts,你…

深入解析Spring Boot集成MyBatis的多种方式

文章目录 1. 引言2. 传统的XML配置方式2.1 引入依赖2.2 配置数据源和MyBatis2.3 编写Mapper接口和XML映射文件2.4 使用Mapper 3. 注解配置方式3.1 引入依赖3.2 配置数据源和MyBatis3.3 编写Mapper接口3.4 使用Mapper 4. MyBatis动态SQL4.1 使用XML配置方式4.2 使用注解配置方式…

KaiwuDB 获评信通院 2023 大数据“星河”标杆案例

12月6日,由中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601) 共同组织的 2023 大数据“星河(Galaxy)”案例评选结果正式公示,“基于 KaiwuDB 的台区云储能示范项目”历经多环节严苛评审,从累计 706 份申报项目中…

sql宽字节注入

magic_quotes_gpc(魔术引号开关) https://www.cnblogs.com/timelesszhuang/p/3726736.html magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以…

HarmonyOS4.0从零开始的开发教程15HTTP数据请求

HarmonyOS(十三)HTTP数据请求 1 概述 日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富…

谈谈spring中AOP

概述 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中…

基于SSM的影视企业全渠道会员管理系统(有报告)。Javaee项目

演示视频: 基于SSM的影视企业全渠道会员管理系统(有报告)。Javaee项目 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring S…

MAMOS蓝图: 打造自己的质量工程

针对团队中存在的问题,构造MAMOS蓝图,从而以系统化的方式识别并解决问题。本文将针对减少等待时间这一问题举例说明MAMOS蓝图的组成和使用方式。原文: MAMOS Blueprint: Build your own for Quality at Speed 很难完全摆脱等待时间。 我认为没有必要争论…

【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来

🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. AIGC 技术的概述和发展趋势1.1 AIGC 技术的概述1.2 AIGC 技术的发展趋势 二. AIGC 与元宇…

养娃难可求助亲戚的UML建模-UMLChina建模知识竞赛第4赛季第26轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。第4题为附加题,对错不影响优胜者…

指针运算笔试题解析

题目一 #include <stdio.h>int main(){int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0;}// 程序的结果是什么&#xff1f; 答案中显示第一个是2&#xff0c;第二个是5 咱们先来解释一下第一个答…

【Linux】信号--信号的捕捉/可重入函数/volatile/SIGCHLD信号

文章目录 一、信号的捕捉1.用户态和内核态2.内核如何实现信号的捕捉3.sigaction 二、可重入函数三、volatile四、SIGCHLD信号 一、信号的捕捉 1.用户态和内核态 用户态的的时候&#xff0c;进行以下操作&#xff1a;1.操作系统自身的资源(getpid,waitpid…)2.硬件资源(printf…

YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)

一、本文介绍 本文给大家带来的CARAFE&#xff08;Content-Aware ReAssembly of FEatures&#xff09;是一种用于增强卷积神经网络特征图的上采样方法。其主要旨在改进传统的上采样方法&#xff08;就是我们的Upsample&#xff09;的性能。CARAFE的核心思想是&#xff1a;使用…

低代码优缺点的那些事

什么是低代码 低代码是一种软件开发方法,旨在通过使用可视化工具和组件库来简化应用程序开发。低代码平台提供了一种快速开发应用程序的方式,无需编写大量的代码。开发人员可以使用拖放界面和预构建组件来构建应用程序,从而加快开发速度和降低开发成本。低代码平台通常也提…

【LeetCode刷题笔记】155.最小栈

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

震惊,PDF文件转换已不再不是问题?

你是否曾经因为PDF文件的格式问题而感到困扰&#xff1f;是否曾经因为无法快速转换PDF文件而感到烦恼&#xff1f; 现在&#xff0c;这些问题都可以迎刃而解了&#xff01;下面这个在线PDF转换网站&#xff0c;就是你的解决方案。 目前5M以下文件免费转换&#xff0c;赶紧来看…