golangWEB框架gin学习之获取get参数
原文地址:http://www.niu12.com/article/40
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
func getRouteParams(c *gin.Context) {
// 获取路由参数为name的值
// http://127.0.0.1:8888/route/card 输出 card
name := c.Param("name")
c.String(http.StatusOK, name)
}
func getRoutePregParams(c *gin.Context) {
// 获取路由参数为name的值 和job的值 job为无限长,忽略/,并且包含前一个/
// http://127.0.0.1:8888/route/card/
// 输出 card /
// http://127.0.0.1:8888/route/card/name
// 输出 card /name
// http://127.0.0.1:8888/route/card/name/hello
// 输出 card /name/hello
name := c.Param("name")
job := c.Param("job")
c.String(http.StatusOK, name + " " + job)
}
/**
获取路由参数
*/
func getParams(c *gin.Context) {
// http://127.0.0.1:8888/?name=card
// 输出 card card 程序员
// http://127.0.0.1:8888/?name=card&job=coder
// 输出 card card coder
// 当有多个参数相同时,取第一个value
// http://127.0.0.1:8888/?name=card&job=coder&name=周起
// 输出 card card coder
// http://127.0.0.1:8888/?name=周起&job=coder&name=card
// 输出 周起 周起 coder
// c.Query() 等同于 c.Request.URL.Query().Get()
name := c.Query("name")
name2 := c.Request.URL.Query().Get("name")
// 设置默认参数,如果job参数不存在,默认为程序员
name3 := c.DefaultQuery("job", "程序员")
c.String(http.StatusOK, name + " " + name2 + " " + name3)
}
func getRepeatParams(c *gin.Context) {
name := c.QueryArray("name")
// http://127.0.0.1:8888/repeat?name=周起&name=card
// 输出 name:[周起 card], type:[]string
fmt.Printf("name:%v, type:%T", name, name)
// http://127.0.0.1:8888/repeat?job[a]=周起&job[b]=card
// 输出 job:map[a:周起 b:card], type:map[string]string
job := c.QueryMap("job")
fmt.Printf("job:%v, type:%T", job, job)
}
func main() {
router := gin.Default()
// 获取路由参数
router.GET("/route/:name", getRouteParams)
// 获取正则路由参数
router.GET("/route/:name/*job", getRoutePregParams)
// 获取queryString
router.GET("/", getParams)
// 获取同名参数
router.GET("/repeat", getRepeatParams)
router.Run(":8888")
}
golangWEB框架gin学习之获取get参数的更多相关文章
- golangWEB框架gin学习之获取post参数
原文地址:http://www.niu12.com/article/41 package main import ( "fmt" "github.com/gin-goni ...
- golangWEB框架gin学习之路由群组
原文地址:http://www.niu12.com/article/42 package main import ( "github.com/gin-gonic/gin" &quo ...
- JavaScript学习之获取URL参数
最近看了几道面试题,其中有一道就是关于写一个方法来获取浏览器地址栏URL查询部分的字段内容.虽然之前看过相关的东西,但感觉有点模糊,所以就又全面的学习一遍,谨以此文记之! 准备知识 在JavaScri ...
- Mybatis 学习---${ }与#{ }获取输入参数的区别、Foreach的用法
一.Mybatis中用#{}和${}获取输入参数的区别 1.“#{}“和“${}”都可以从接口输入中的map对象或者pojo对象中获取输入的参数值.例如 <mapper namespace=&q ...
- django学习-5.获取url参数和name的作用
1.前言 假如我们要打开这两个博客园地址:[https://www.cnblogs.com/xiamen-momo/archive/2020/11.html].[https://www.cnblogs ...
- Java获取函数参数名称
原理 编译之后的class文件默认是不带有参数名称信息的,使用 IDE 时,反编译jar包得到的源代码函数参数名称是 arg0,arg1......这种形式,这是因为编译 jar 包的时候没有把符号表 ...
- go的gin框架从请求中获取参数的方法
前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST /post/te ...
- 学习SpringMVC——如何获取请求参数
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView) ...
- springMvc源码学习之:spirngMVC获取请求参数的方法2
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他 (@CookieValue)!她(@ModelAndView ...
随机推荐
- python3 生成器表达式
生成器表达式 [i for i in range(100)] #列表解析 与列表解析的不同是,列表解析用中括号,生成器表达式用小括号 g = (i for i in range(1000)) #生成器 ...
- Python与金融分析基础
一 .ipython的简单使用 IPython:交互式的Python命令行 丰富的快捷键 TAB键自动完成 ?:内省.命名空间搜索 !:执行系统命令 魔术命令:以%开始的命令 %run:执行文件代码 ...
- Makefile 的 prequisite 執行順序 single multi thread
Makefile 代碼如下: B 需要 A 的 產出, all: A B A B 是 target, case 1: single-thread make -j1 則執行的順序為 A -> B ...
- (二十八)fopen与读写的标识r,r+,rb+,rt+,w+.....
fopen与读写的标识r,r+,rb+,rt+,w+..... 函数简介 函数功能: 打开一个文件 函数原型:FILE * fopen(const char * path,const char * m ...
- (十二)进一步掌握STVD/COSMIC
如何分配变量到指定的地址 举例:unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00unsigned char temp_B@0x100; //定 ...
- python 多进程multiprocessing 模块
multiprocessing 常用方法: cpu_count():统计cpu核数 multiprocessing.cpu_count() active_children() 获取所有子进程 mult ...
- animation动画的笔记
animation的主要语法: -webkit-animation-duration:/*-webkit是针对个别浏览器内核支持,duration是动画时间*/ -webkit-animation-t ...
- 【SQL】多个表的查询
1.元组变量 SELECT * FROM a AS x, a AS y; 结果是显示自己和自己的笛卡尔乘积. 如果查询中对于某一个关系使用了多次,为了区别他们的属性,需要对关系定义别名,然后用 别名. ...
- Ansi,UTF8,Unicode,ASCII编码的区别 ---我看完了 明白了很多
来自:http://blog.csdn.net/xiongxiao/article/details/3741731 ------------------------------------------ ...
- Linux创建swap分区(用文件作为Swap分区)
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小). dd if=/dev/zero of=/root/swa ...