gin学习之获取URL参数

  • 获取URL参数
    • 获取querystring参数
    • 获取form参数
    • 获取json参数
    • 获取path参数
    • 参数的绑定

获取URL参数

在前面的学习中,我们已经学会了使用gin框架进行请求的转发、html模板的渲染,以及静态资源的引入,那么进行我们要进行一系列的参数获取的学习。
那么这个重要吗?非常重要,非常非常重要!!!
学过Java的朋友在学习框架的时候也会进行学习路径参数的获取,
比如,通过一些注解来进行获取参数,例如:RequestParam、PathVariable注解等等。
那这些都是Java的获取方式,那么我们的go世界是如何获取参数的呢?
一起来看看吧,超级舒服

获取querystring参数

  • 可以看到哈,这个 wd 就是搜索的参数哈,我们在百度里面搜索修改wd的参数,也能完成一个搜索的功能。
  • 但是我们在前端填写后,如何让后台获取到这个参数呢?

这里我们给出了 三种获取方式

 str = c.Query("wd")str := c.DefaultQuery("wd","acwing")  str , ok := c.GetQuery("wd")
  • 第一种:尝试获取 wd 的参数,获取不到就是nil
  • 第二种:我们设置了一个默认值,如果没有这个参数那么就会使用默认值代替这个参数
  • 第三种:我们尝试获取 wd 的参数,获取不到会返回一个false,然后我们另外做处理即可!
  • 我们来实战一下!!!

  • 我们r.run跑起来看看结果!!!

  • 我们通过正常的搜索,完全可以获取参数哈!


  • 第二个也可以正常处理,当遇到没有参数的时候进行获取默认的参数

  • 第三个也可以正常获取参数,没有参数就返回false,我们在false时做特殊处理。
  • 嘿嘿嘿,科科不会怪的我

获取form参数

  • 这个一般时获取表单的里面的数据,而表单里面的提交,一般都是post请求,所以,我们这个要多写一个函数用于获取post请求。

那么针对 post请求 ,go也给出了三种同步的方式,聪明的人已经猜到了,没错,和get请求类似,啊哈哈哈哈哈哈

 username := c.PostForm("username")username = c.DefaultPostForm("username","somebody")username , ok := c.GetPostForm("username")
  • 这里我们就用获取用户名来举例子哈!表单一般都有用户名满,啊哈哈哈哈哈哈
  • 用法和楼上差不多,我们就不一一举例子了哈,这里就随便选择一个来实战下哈!

为了方便我们提交post请求,我们建立两个模板

用于登录的界面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>登录页面</title>
</head>
<body><form action="/login" method="post"><label for="username">username:</label><input type="text" name="username" id="username"><input type="submit" value="登录"></form>
</body>
</html>
  • 返回获取post请求参数的界面 ,
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div>hello {{ .username }}</div>
</body>
</html>
  • 非常的人性哈!来看看后台代码吧!

  • 我们搞好后直接运行看看结果哈!

  • 点击登录后,即跳转到post请求的模板界面,并将名称参数获取到了!

我们都知道哈,浏览器里面如果不通过表单的形式进行提交,而直接在url参数提交的话,都是get请求哈,有的小伙伴就是不想这么麻烦,就是想直接测试一下这个接口能不能正确获取对吧,那有木有办法呢?

答案是有的哈, 我记得前面的文章里面有提到过, postman这个工具哦,可以直接发送post等请求
我们一起看看吧!

  • 可以看到哈,我们也成功的对他们做了测试,并且返回了我们想要看到的数据,工具还是舒服呢

获取json参数

  • 这个划重点哈,我们前后端数据交互,最常用的格式就是json格式了。
  • 在go里面同样如此,我们go提供了三种方式进行传输json数据
  • mapgin.H结构体 ,来试试看吧

  • gin.H有蛮多人看不明白哈,如果你点进源码多看看的话,就会知道,里面其实就是一个map,啊哈哈
  • gin框架就是为了大家方便,封住了下下。然后我们跑起来看看哈!

  • 非常的完美和人性哈!!!下一个下一个

获取path参数

  • 就玩意就是获取路径上面的参数,没有标明emmm举个例子说明吧,感觉文字难以解释
 http://localhost:9090/index/张三/18
  • 看看这个请求哈,这个表示我们发送一个get请求,里面携带了两个参数,18岁的张三,能理解吧!嘿嘿嘿
  • 那么这个我们要如果获取呢?也很简单哈,gin提供了Param方法
 name := c.Param("name")
  • 这样就可以了吗?
  • 怎么可能呢,路径上的写法要发送一丢丢的改变才可以哈!一起来看看吧!

  • 路径前面加个冒号 : ,即可哈,跑起来看看效果吧!

  • 这也是成功的获取到了哈,非常的舒服
  • 有的小伙伴就问了,这个有啥用呢,我们不是已经有那个获取参数的方法了吗,为什么还要整一个这个呢?
  • 存在即合理,不知道大家有木有看到过有的个人博客网站呀,后面跟的上面 ***/2018/12/4这样的路径哈,可以通过这样保存时间呀,兄弟们。

参数的绑定

  • 这玩意还是要说说的,如果不搞这个,那我们以后搞项目的时候,参数一多,头就大了,
  • 来看个代码

  • 好兄弟们,这个是post请求获取参数,一个一个来呀!
  • 大家都经历过校招吧,去公司官网里面搞简历的时候,那个表单,给人都写吐了,
  • 起码得二三十个参数吧,这总不能一个一个去写这个玩意吧,那不得难受呀,开发人员。
  • 为了不然我们难受哈,我们就来学习参数的绑定。

首先我们先搞个结构体哈,类似于Java里面的类

type UserInfo struct {Username string `json:"username" xml:"username" form:"username"`Password string    `json:"password" xml:"password" form:"password"`
}
  • 后面的设置标记,不然就要使用大写,首字母大写,在go里面的表示对外开放权限哦,不然访问不到的呢

对于装配数据,go也是给了函数的

 err := c.ShouldBind(&u)
  • 就是这个哈,很好记忆吧 , shouldbind,应该绑定绑定,啊哈哈哈哈哈,
  • 特别注意哈 : 里面的参数一定要是结构体的指针哈!!!

先来发个get请求哈!

  • 是的,你没有看错,这就可以了,也不用我们去一个一个去写参数了,直接shouldbind。
  • 来看看效果。
  • 非常的完美哈!
  • 我们再来试试post请求吧,毕竟表单才是我们需要搞的重点,谁没事在url填写参数呀,哎嘿嘿

  • post请求和get没啥差别哈,搞get是为了方便看效果,毕竟post要制作表格,
  • 但是今天说了 postman 这个工具满,所以我们使用 postman工具 进行测试哈

  • 非常的完美和人性哈!

有木有感觉比Java要舒服,啊哈哈哈哈哈!(手动狗头保命)

gin框架之获取URL参数相关推荐

  1. js获取url参数vue.js获取url参数 JQ获取url参数

    在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 1.window.location.href(设置或获取整个 URL 为字符串) ...

  2. html的子页面获取自己url,如何从html页面获取url参数并将其显示在textarea中?

    我用下面的在我的HTML页面的JavaScript功能,我想没有textarea的任何连接操作正常显示参数....如何从html页面获取url参数并将其显示在textarea中? function g ...

  3. 使用jquery获取url以及jquery获取url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作1.jquery获取url很简单,代码如下1.window.location.href;其实只是用到了javascri ...

  4. php解析url并得到url中的参数及获取url参数的四种方式

    本文给大家介绍php解析url并得到url中的参数及获取url参数的四种方式,涉及到将字符串参数变为数组,将参数变为字符串的相关知识,本文代码简单易懂,感兴趣的朋友一起看看吧 下面一段代码是php解析 ...

  5. SQLAlchemy中模糊查询;JS中POST带参数跳转;JS获取url参数

    SQLAlchemy中模糊查询,如何like多个关键字 JS中POST带参数跳转 一个项目中要跳转到另外一个项目,还需要带参数 考虑到安全性的问题,最好是用POST跳转,不能再URL中拼参 所以找到了 ...

  6. .NET手记-JS获取Url参数

    最近为App做活动专区,其中很多活动都是采用html 5页面来制作的.一方面体量较小,制作快速,更新维护容易:另一方面,嵌入App后适配效果也不会很差. 这里我们采用混编形式来从native app传 ...

  7. js 获取url参数(QueryString)

    /// <summary> /// 获取url参数 /// 王洪岐 /// </summary> function QueryString(fieldName) { var u ...

  8. ajax动态获取url参数值,获取URL参数的方法

    一.URL:统一资源定位符 1.URL组成 完整的URL由这几个部分构成: scheme://host:port/path?query#fragment 名词解释: scheme:通信协议.常用的ht ...

  9. js 获取URL参数乱码解决

    地址  http://localhost:8080/uploadFile.html?contractNo="2018-塑-崇-0089" 方法一:构造一个含有目标参的的正则表达式对 ...

最新文章

  1. numpy中矩阵运算的特点
  2. μCos-ii学习笔记1_概述
  3. Serverless 时代 DevOps 的最佳打开方式
  4. 2022年跨境卖家如何布局海外市场?东南亚“钱”景可观
  5. svn中“clean up”死循环问题解决办法
  6. esxi能直通的显卡型号_2020最适合新手CG玩家的电脑配置【显卡--专业卡、游戏卡】...
  7. ESP8266 NonOS-SDK Web配网
  8. 线性代数中的线性方程组
  9. 锐文科技智能网卡xNIC-200/400在国产飞腾FT2000测试性能报告
  10. 地理位置坐标标准以及转换
  11. Android平台美颜相机/Camera实时滤镜/视频编解码/影像后期/人脸技术探索——目录
  12. 微信小程序map 地图引入配置+腾讯地图地址坐标解析
  13. OpenCV-图像高光调整
  14. 【3】WEB安全学习----HTTP协议
  15. 10-253 B2-1查找订单数最多的员工信息
  16. 一门编程语言的通用知识点
  17. spark内核SortShuffle解析_大数据培训
  18. 名悦集团:跟车行驶如何避免出现汽车追尾事故
  19. JUC并发编程系列详解篇十四(自旋锁 VS 适应性自旋锁)
  20. 【算法练习】蓝桥杯训练一:区间k大数查询、最大最小公倍数、k好数

热门文章

  1. ACM练级日志:可持久化线段树初级-POJ 2104
  2. Hockey Fight Detection Dataset下载地址
  3. 将Excel表格导入mysql数据表_如何把Excel导入mysql数据表的方法详解
  4. docs邮箱服务器,连接到服务器时Microsoft Office Outlook - Skype for Business | Microsoft Docs...
  5. 《如何阅读一本书》读书笔记 附思维导图文件下载
  6. 汇编BYTE,WORD,DWORD区别
  7. Day04_vue组件_组件通信_todo案例
  8. handlebar.js模板使用方法简记
  9. 弱逻辑的Handlebar实现简单判断逻辑需要自定义Helper
  10. Linux驱动 简单的Linux驱动基础知识