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

Gin 学习笔记02-参数获取

Gin 参数获取

  • 1、获取url 参数
  • 2、获取动态 url 参数
  • 3、获取 form 表单数据

1、获取url 参数

  • Query()
  • GetQuery()
  • QueryMap()
  • DefaultQuery()
package mainimport ("fmt""github.com/gin-gonic/gin""net/http"
)func _query(c *gin.Context) {// 1、/query?user=123  获取参数//query := c.Query("user")//fmt.Println(query)// 2、/query?user=123 获取参数 如果参数有值即使为空,flag 也为true, 只有当参数没有 即 /query? flag 为 false//query, flag := c.GetQuery("user")//c.JSON(http.StatusOK, gin.H{"query": query, "flag": flag})//fmt.Println(flag)// 3、拿到多个相同的值//query := c.QueryArray("user")//fmt.Println(query)//c.JSON(http.StatusOK, query)// 4、query := c.QueryMap("user")fmt.Println(query)c.JSON(http.StatusOK, query)
}func main() {router := gin.Default()router.GET("/query", _query)router.Run("0.0.0.0:9000")
}

2、获取动态 url 参数

  • c.Params()
package mainimport ("fmt""github.com/gin-gonic/gin""net/http"
)func _params(c *gin.Context) {id := c.Param("id")fmt.Println(id)c.JSON(http.StatusOK, gin.H{"id": id})
}func _paramsId(c *gin.Context) {id := c.Param("id")key := c.Param("key")c.JSON(http.StatusOK, gin.H{"id": id, "key": key})fmt.Println(id)fmt.Println(key)
}func main() {router := gin.Default()router.GET("/params/:id", _params)router.GET("/params/:id/:key", _paramsId)router.Run(":9000")
}

3、获取 form 表单数据

  • PostForm()
  • PostFormArray()
  • MultipartForm()
  • DefaultPostForm()
  • GetRawData()
package mainimport ("fmt""github.com/gin-gonic/gin"
)func _postForm(c *gin.Context) {//name := c.PostForm("name")//age := c.PostForm("age")//fmt.Println("name")//fmt.Println("age")//c.JSON(http.StatusOK, gin.H{"name": name, "age": age})//name := c.PostFormArray("name")//age := c.PostFormArray("age")//ids := c.PostFormArray("ids") 如果用户没有传,则直接使用默认值,如果传了 就使用 用户传的//gender := c.DefaultPostForm("gender", "男")//form, err := c.MultipartForm()//if err != nil {//	c.JSON(http.StatusOK, gin.H{"message": "获取参数失败"})//	return//}//fmt.Println(form)//c.JSON(http.StatusOK, form)//fmt.Println(ids)//c.JSON(http.StatusOK, gin.H{"name": name, "age": age, "ids": ids, "gender": gender})fmt.Println(c.GetRawData())
}func main() {router := gin.Default()router.POST("/postForm", _postForm)router.Run(":9000")
}// 1、获取 query 参数
// - Query()
// - QueryArray()
// - QueryMap()
// - GetQuery()// 2、获取 动态 参数
// - Param()// 3、获取 表单 参数
// - PostForm()
// - PostFormArray()
// - DefaultPostForm()
// - MultipartForm()// 4、获取 原始参数
// - getRawData()

相关文章:

Gin 学习笔记02-参数获取

Gin 参数获取 1、获取url 参数2、获取动态 url 参数3、获取 form 表单数据 1、获取url 参数 Query()GetQuery()QueryMap()DefaultQuery() package mainimport ("fmt""github.com/gin-gonic/gin""net/http" )func _query(c *gin.Context) {// 1…...

Uniapp Vue3 基础知识点附带实例

包括数据绑定和计算属性、条件渲染和列表渲染、事件处理、表单输入处理、生命周期钩子、自定义指令和过滤器、路由和导航以及状态管理&#xff08;如Vuex&#xff09;&#xff1a; <template><div><!-- 条件渲染 --><div v-if"showMessage">…...

【迅搜03】全文检索、文档、倒排索引与分词

全文检索、文档、倒排索引与分词 今天还是概念性的内容&#xff0c;但是这些概念却是整个搜索引擎中最重要的概念。可以说&#xff0c;所有的搜索引擎就是实现了类似的概念才能称之为搜索引擎。而且今天的内容其实都是相关联的&#xff0c;所以不要以为标题上有四个名词就感觉好…...

MySql之索引,视图,事务以及存储过程举例详解

一.数据准备 数据准备可参考下面的链接中的数据准备步骤 MySql之内连接&#xff0c;外连接&#xff0c;左连接&#xff0c;右连接以及子查询举例详解-CSDN博客 &#xff08;如有问题可在评论区留言&#xff09; 二.存储过程 1.定义 存储过程 PROCEDURE &#xff0c;也翻译…...

AR眼镜双目光波导/主板硬件方案

AR(增强现实)技术的发展离不开光学元件&#xff0c;而在其中&#xff0c;光波导和Micro OLED被视为AR眼镜光学方案的黄金搭档。光学元件在AR行业中扮演着核心角色&#xff0c;其成本高昂且直接影响用户体验的亮度、清晰度和大小等因素。AR眼镜的硬件成本中&#xff0c;光机部分…...

单片机调试技巧--修改bin文件实现断点

fromelf --text -a -c --outputall.dis F103_Moduel\F103_Moduel.axffromelf --bin --outputtest.bin F103_Moduel\F103_Moduel.axf 在启动文件中&#xff0c;修改UsageFault_Handler UsageFault_Handler\PROC; get current contextTST lr, #0x04 ; if(!EXC_RETURN[2])ITE…...

微信小程序:This Mini Program cannot be opened as your Weixin version is out-of-date.

项目场景&#xff1a; 问题描述 升级基础库3.2.0&#xff0c;然后PC端整个小程序都打不开了&#xff0c;点击小程序提示”This Mini Program cannot be opened as your Weixin version is out-of-date. Update Weixin to the latest version.“&#xff0c;并且点击Update Wei…...

04 C++中的四种强制类型转换

系列文章目录 04 C中的四种强制类型转换 目录 系列文章目录 文章目录 前言 一、静态转换&#xff08;Static Cast&#xff09; 二、动态转换&#xff08;Dynamic Cast&#xff09; 三、常量转换&#xff08;Const Cast&#xff09; 四、重新解释转换&#xff08;Reinte…...

电力感知边缘计算网关产品设计方案-边缘计算自控算法模型

边缘计算网关与其他数据采集的IoT网关设备不同之处在于可以根据应用场景和产品解决方案,单独设置一些边缘计算算法模型,实现离线系统和边缘计算自控逻辑判别+执行系统方案,自控算法逻辑单元也是边缘计算网关自控系统方案的核心单元。 自控算法逻辑单元根据产品应用不同,有…...

C语言进阶之笔试题详解(1)

引言&#xff1a; 对指针知识进行简单的回顾&#xff0c;然后再完成笔试题。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;一起学习C语言&#x1f388; 目录 引言&#xff1a; 知识简单回顾 指针是什么 指针变…...

报道|2023 INFORMS 最佳论文(部分)华人获奖者名单

编者按 本文收集了部分2023年INFORMS年会最佳论文评选的华人获奖者名单&#xff0c;祝贺获奖者们&#xff01;如果读者身边有本文遗漏的获奖者请在文章下方评论区告诉小编。 ● George Nicholson学生论文竞赛一等奖&#xff1a; Bayesian Design Principles for Frequentist …...

【Docker】从零开始:12.容器数据卷

【Docker】从零开始&#xff1a;12.容器数据卷 1.什么是容器数据库卷2.数据的覆盖问题3.为什么要用数据卷4.Docker提供了两种卷&#xff1a;5.两种卷的区别6.bind mount7.Docker managed volumevolume 语法volume 操作参数 1.什么是容器数据库卷 卷 就是目录或文件&#xff0c…...

Spring Boot 整合MyBatis-Plus 详解

MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 全新的 MyBatis-Plus 3.0 版本基于 JDK8&#xff0c;提供了 lambda 形…...

【前端】让列表像Excel单元格一样编辑

前言 领导说了一堆的话,最后总结一句就是客户很懒,客户的员工更加懒。 本着让别人节省时间的原则,提倡出了让列表和Excal的单元格一样,不仅看数据还可以随时更改数据。 查资料 根据 Jeecg-Vue3 源码介绍,从而知道是基于 Vben Admin 开源项目进行改造的。 因此在 Vben…...

数字图像处理-Matlab实验

实验一 图像增强 实验内容: 对于给定的低对比度测试图像,利用灰度图像直方图均衡化算法进行图像视觉效果增强。 对于给定的低照度彩色测试图像,结合颜色空间转换和灰度图像直方图均衡化算法进行图像视觉效果增强。 实验数据: Test1_1.jpg: Test1_2.jpg: 实验步骤: %% …...

Nginx:配置文件详解

一、Nginx配置文件 main配置段&#xff1a;全局配置 events段&#xff1a;定义event工作模式 http {}&#xff1a;定义http协议配置 支持使用变量&#xff1a; 内置变量&#xff1a;模块会提供内建变脸定义 自定义变量&#xff1a;set var_name value 二、 主…...

卷积,是什么?

其实就是对事物的作用&#xff0c;或者说作用力&#xff0c;比如说&#xff0c;石板上没有字&#xff0c;我们刻上字&#xff0c;便于识别&#xff0c;从机器视觉角度来说&#xff0c;就是对图像的作用力&#xff0c;这种作用使得能看清想要的东西&#xff0c;感觉还是很主观&a…...

Javascript的闭包有哪些应用?

JavaScript 中的闭包是一种强大的特性&#xff0c;它可以用于多种应用。以下是一些闭包在 JavaScript 中的常见应用&#xff1a; 1、封装私有变量&#xff1a; 通过闭包&#xff0c;可以创建私有变量和方法。外部作用域无法直接访问闭包内的变量&#xff0c;从而实现了信息隐藏…...

LCM-LoRA模型推理简明教程

潜在一致性模型 (LCM) 通常可以通过 2-4 个步骤生成高质量图像&#xff0c;从而可以在几乎实时的设置中使用扩散模型。 来自官方网站&#xff1a; LCM 只需 4,000 个训练步骤&#xff08;约 32 个 A100 GPU 小时&#xff09;即可从任何预训练的稳定扩散 (SD) 中提取出来&#…...

设计模式-开篇

什么是设计模式 设计模式是一种被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性。设计模式不是可直接转化为代码的完成解决方案&#xff0c;而是描述了如何解决一个问题的经过&#xf…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...