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()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker Swarm总结+基础、集群搭建维护、安全以及集群容灾(1/4)

博主介绍:Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 🍅文末获取源码下载地址🍅 👇🏻 精彩专栏推荐订阅👇🏻…

【WSA】无法打开 适用于 Android™ 的 Windows 子系统,因为它处于脱机状态。可能缺少存储设备,或者存储设备已断开连接。

问题描述 之前可以正常使用适用于 Android™ 的 Windows 子系统(WSA),但突然间无法启动了。 当尝试启动WSA中的软件时,都会出现以下错误提示: 无法打开 适用于 Android™ 的 Windows 子系统,因为它处于脱…

chrome driver 截图和填表

昨天突然有一个需求(自己的),想把某个网站题目主体部分翻译并保存成图片,开始时用了国内网站的翻译(人工、简单翻译),后来发现很多地方翻译的不尽人意,于是只好用翻译插件对原始网站…

2311skia,04绘制路径

分析Skia绘画路径代码 绘画路径尽管使用频率相对绘画图像,绘画文本低,但却是非常重要的一个基本特性.所有不规则图形(椭圆,圆角矩形,三角形,简单的文字),最后都要绘画路径. 而且,若自己实现一个2D引擎,这块内容是很有参考意义的,用OpenGL,都很少关注采样图像了,对对坐标就好. …

cjson库打包数据实现方法

使用 cJson 库,在C语言环境下,打包一个cJson字符串: int CreateArryJsonString(void) {cJSON *cJsonArr cJSON_CreateArray();cJSON *sJsonObj1 cJSON_CreateObject();cJSON_AddStringToObject(sJsonObj1, "test1", "test1…

动态规划学习——子序列问题

目录 ​编辑 一,最长定差子序列 1.题目 2,题目接口 3,解题思路及其代码 一,最长定差子序列 1.题目 给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列…

机器学习【03】在本地浏览器使用远程服务器的Jupyter Notebook【conda环境】

1.激活虚拟环境 conda activate 虚拟环境名字2.虚拟环境下安装jupyter notebook pip install jupyter3.配置 jupyter 文件 在 Jupyter Notebook 的配置目录中生成一个配置文件 jupyter_notebook_config.py jupyter notebook --generate-config3.设置密码 jupyter notebook …

C/C++ 常用加密与解密算法

计算机安全和数据隐私是现代应用程序设计中至关重要的方面。为了确保数据的机密性和完整性,常常需要使用加密和解密算法。C是一种广泛使用的编程语言,提供了许多加密和解密算法的实现。本文将介绍一些在C中常用的加密与解密算法,这其中包括Xo…

[vxe-table] vxe-table-column配合v-if导致列样式与位置错乱

<vxe-table-column v-if"pageInfo.id 4 ||pageInfo.id 8" title"上报类型" width"100" key1><template v-slot"{row}"><span>咨询工具</span></template> </vxe-table-column>//或者<vxe-ta…

操作NAND flash W25N01G

文章目录 W25N01G1 描述2 特点3 封装3.3.2 连接线 4 引脚/CSDO/WP/Hold SPI指令标准SPI命令双SPI四元SPI命令写保护 5 地址PA与PC最后一个扇区 OTP寄存器1块保护清除块保护指令* WP-E 寄存器2寄存器3BUSYP-FAILE-FAILECC位 8 命令8.1 装置ID 指令解读写状态寄存器 注意内容上拉…

Java,File类与IO流,处理流:缓冲流、转换流、数据流、对象流

目录 处理流之一&#xff1a;缓冲流 四种缓冲流&#xff1a; 缓冲流的作用&#xff1a; 使用的方法&#xff1a; 处理文本文件的字符流&#xff1a; 处理非文本文件的字节流&#xff1a; 操作步骤&#xff1a; 处理流之二&#xff1a;转换流 转换流的使用&#xff1a; …

企业编码生成程序Python毕业设计

&#xff08;1&#xff09;生成6位数字防伪编码。当用户在主程序界面中输入数字“1”菜单项时&#xff0c;将进入“生成6位数字防伪编码 &#xff08;213563型&#xff09;”的功能执行任务。此时要求输入生成防伪码的数量&#xff0c;可以根据需要输入生成防伪码的数量。按下&…

范围查询 range级别 继续优化思路

问题&#xff1a; 这几天工作遇到了一个问题。千万级别的表&#xff0c;每秒钟产生很多数据&#xff0c;select count(id) from table where flag 1 and create_time < 2023.11.07;分区表&#xff0c;range级别&#xff0c;已经是走create_time列上的索引&#xff0c;flag…

springboot宠物店管理系统-计算机毕设 附源码 32041

SpringBoot宠物店管理系统 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;宠物行业当然也不例外。宠物店管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理…

多级嵌套vue同步调用用法

//需求 要求同步调用initGame2方法 //调用方法 this.initSocket(); //定义方法为同步 async initSocket() { //调用为同步 await this.initGame2(); //定义方法为同步 async initGame2() {const e await w({ url: //定义w方法 const w e.create({ baseURL: http://my_url:8…

python pdf转txt文本、pdf转json

文章目录 一、前言二、实现方法1. 目录结构2. 代码 一、前言 此方法只能转文本格式的pdf&#xff0c;如果是图片格式的pdf需要用到ocr包&#xff0c;以后如果有这方面需求再加这个方法 二、实现方法 1. 目录结构 2. 代码 pdf2txt.py 代码如下 #!/usr/bin/env python # -*- …

H5ke12--3--iframe--编辑邮箱的制作

下面我们来window.iframes[] frames是一个全局变量&#xff0c;它是一个对象数组&#xff0c;其中包含当前窗口中的所有框架&#xff08;如果存在&#xff09;。 在这段代码中&#xff0c;let frameframes[0];是将第一个框架赋值给变量frame。通过frame.document.designMode&q…

【ArcGIS Pro微课1000例】0037:ArcGIS Pro中模型构建器的使用---以shp批量转kml/kmz为例

文章目录 一、ArcGIS Pro模型构建器介绍二、shp批量转kml/kmz1. 打开模型构建器2. 添加工作空间4. 添加【创建要素图层】工具5. 添加【图层转kml】工具6. 输出文件命名7. 运行模型三、模型另存为1.py文件2. 保存为工具一、ArcGIS Pro模型构建器介绍 模型构建器是一种可视化编程…

感冒的六大经方2

3 葛根汤 处方内容是&#xff1a;葛根15克&#xff0c;麻黄5克&#xff0c;桂枝10克&#xff0c;白芍10克&#xff0c;生薑二片&#xff0c; 炙甘草10克&#xff0c;大枣十枚 每付药加入六碗水使用大火来煮成二碗&#xff0c;成人于每三小时空腹时喝一碗&#xff0c;小孩减半…