go post 参数_Go语言基础(十八)

a4b2ff983d27b776ea1b7cdf326cbd01.png

Go语言基础(十八)

一、gin介绍

二、gin路由

三、gin数据解析与绑定

四、gin渲染

五、gin中间件


一、gin介绍

Go 语言最流行了两个轻量级 Web 框架分别是 Gin 和 Echo。gin是一个golang的微框架,封装比较优雅,API友好,源码注释明确。gin框架是Go语言进行web开发(api开发,微服务开发)框架中。

1、gin安装

go 

2、hello world

package 

在浏览器打开http://localhost:8000

87d708115eed929f0d2739c345cda337.png

二、gin路由

gin框架采用的路由是基于httprouter做的,gin支持Restful风格的API。

1、通过Context的Param方法获取API参数

func 

2、通过DefaultQuery()或Query方法获取URL参数

r

71e53607c728ae8d3728e67240c0e421.png

3、通过PostForm()方法获取表单参数

首先创建一个html:

<!DOCTYPE html>

直接run起来,然后通过PostForm()方法获取表单参数:

package 

4bcfdb473ddefcd9a033e02a7ecff580.png

073b32d881bfaf4e8da31b6fa010e69c.png

4、上传文件

<!DOCTYPE html>

在浏览器中打开,然后运行:

package 

ed25abec52b30f1ad7592eb77b10ffc6.png

f049cac63574c85e84c4779e65dbaa34.png

5、routes group

routes group就是为了管理一些相同的URL。

package 

c23ff9a02df60d26e21aaf80d7bd2ea1.png

6、路由原理

httproter会将所有的路由规则构造一颗前缀树。

三、gin数据解析和绑定

1、json数据解析和绑定

客户端传参,后端接收并解析得到结构体。

package 

a809e567156f4afd5acf393a0e8eb43f.png

2、表单数据绑定与解析

<

然后执行:

package 

a17f4dae84c6fa89791756ea43f50208.png

3、URL数据绑定与解析

package 

9d24781ff4f6498ba8e1215f3fcb60e1.png

四、gin渲染

1、各种数据格式的响应

package 

703012f2ace1357be145139b62ac1462.png
json响应

6d3814c647347ae1c39947f05bacaf94.png
struct响应

60678116edc724d1360cbc72997d1727.png
xml响应

03ed39f1873d9ba65fdb4deac78ca566.png
yaml响应

2b083662d6f17de1330e07b7c958ec08.png
protobuf响应

6e297ec783a765fd955bbb1ea87c3124.png

2、HTML模板渲染

gin支持加载HTML模板,然后根据响应的模板参数进行配置并返回响应的数据,本质上就是字符串替换。LoadHTMLGlob()方法可以加载模板文件。

index.tmpl

<

使用HTML模板进行渲染:

package 

10ca074918171f89f848462a78f1631a.png

3、重定向

package 

4、同步异步

goroutine可以很方便地实现异步处理,另外,在启动goroutine时,不应该使用原始上下文,必须使用它的只读副本。

package 

五、gin中间件

  • gin可以构建中间件,但是它只对注册过的路由函数起作用
  • 对于分组路由,嵌套使用中间件
  • 中间件分为全局中间件、单个路由中间件和群组中间件
  • gin中间件必须是一个gin HandlerFunc类型

1、全局中间件

package 

d7844567de071d8a3787203119372503.png

64f32968bdfa927b3e6cdfa96bf6cbcd.png

2、局部中间件

// 局部中间件

3、中间件小练习

定义程序计时中间件,然后定义2个路由,执行函数后打印统计时间。

package 

8f7ec14b2668192a7b358bf25fa5f89a.png

我是尾巴~

每日一句毒鸡汤:有时候就是这样,嘴上说了不可能,但心里却早已想好了千万种可能!

本次推荐:PDF全文翻译网站

Free Online Document Translator - Preserves your document's layout (Word, PDF, Excel, Powerpoint, OpenOffice, text)​www.onlinedoctranslator.com

继续加油~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值