• 欢迎来到本博客,希望可以y一起学习与分享

Gin入门

笔记 benz 2个月前 (04-10) 14次浏览 0个评论 扫描二维码
文章目录[隐藏]

前言

请先安装好goland,配置好GOPATH

安装

国内环境安装

1、使用goproxy工具代理,从国内下载
在安装第三方包的时候,由于网络问题golang.org在国内无法正常使用,导致我们无法使用第三方包管理工具,因此可以通过修改系统环境变量将golang.org切换至国内CDN。


你的项目目录下 执行下面几个命令
1、开启代理

2、初始化项目

会在项目根目录下生成go.mod文件。go.mod是一个go项目的依赖管理文件。
3、下载gin

这样就能将 gin以module的方式安装到你的项目的Lib里面了,倘若执行完上面的命令,且没报错,但在goland里import gin时像下面一样飘红

需要把下面这个Enable Go Modules integration给勾选上:

再运行就可以正常起来了:

第一个Gin程序

在一个空文件夹里新建文件main.go

  • 首先,我们使用了gin.Default()生成了一个实例,这个实例即 WSGI 应用程序。
  • 接下来,我们使用r.Get(“/”, …)声明了一个路由,告诉 Gin 什么样的URL 能触发传入的函数,这个函数返回我们想要显示在用户浏览器中的信息。
  • 最后用 r.Run()函数来让应用运行在本地服务器上,默认监听端口是 _8080_,可以传入参数设置端口,例如r.Run(“:9999”)即运行在 _9999_端口。

路由(Route)

路由方法有 GET, POST, PUT, PATCH, DELETE 和 OPTIONS,还有Any,可匹配以上任意类型的请求。
无参数

解析路径参数
有时候我们需要动态的路由,如 /user/:name,通过调用不同的 url 来传入不同的 name。/user/:name/*role* 代表可选。

获取Query参数

获取POST参数

Query和POST混合参数

Map参数(字典参数)

重定向(Redirect)

分组路由(Grouping Routes)

如果有一组路由,前缀都是/api/v1开头,是否每个路由都需要加上/api/v1这个前缀呢?答案是不需要,分组路由可以解决这个问题。利用分组路由还可以更好地实现权限控制,例如将需要登录鉴权的路由放到同一分组中去,简化权限控制。

上传文件

单个文件

多个文件

HTML模板(Template)

  • Gin默认使用模板Go语言标准库的模板text/template和html/template,语法与标准库一致,支持各种复杂场景的渲染。
  • 参考官方文档text/templatehtml/template

中间件(Middleware)

如何自定义中间件呢?

热加载调试 Hot Reload

Python 的 Flask框架,有 debug 模式,启动时传入 debug=True 就可以热加载(Hot Reload, Live Reload)了。即更改源码,保存后,自动触发更新,浏览器上刷新即可。免去了杀进程、重新启动之苦。

Gin 原生不支持,但有很多额外的库可以支持。例如

  • github.com/codegangsta/gin
  • github.com/pilu/fresh

这次,我们采用 github.com/pilu/fresh

安装好后,只需要将go run main.go命令换成fresh即可。每次更改源文件,代码将自动重新编译(Auto Compile)。
参考 github.com/pilu/fresh – Github


文章 Gin入门 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!