[Golang实战] 带你入手gin框架使用,以项目为例

简介: [Golang实战] 带你入手gin框架使用,以项目为例

gin框架是什么?

介绍:

Gin 是一个用 Go (Golang) 编写的 web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架,由于 httprouter,速度提高了近 40 倍。


特点适用

  1. 中间件的使用
  2. json验证
  3. 路由组
  4. 内容渲染
  5. 错误管理
  6. Crash处理
  7. 快速


快速上手gin框架

终端引入依赖包:

go get -u github.com/gin-gonic/gin


搭建引擎:

r := gin.Default() //这种写法内部已经定义了日志和恢复中间件,可以点进去看源码
或者
r := gin.New() // 这种内部无自定义中间件


常用示例演示:

加载网页静态资源

方法:

r.LoadHTMLGlob(pattern string)//加载静态页面

3ddeb1e158624678b9ee23e7182eb8c1.png


r.Static(relativePath, root string) //加载css,js等资源

ddfdd336c81b42aea5bd4e86a1dab618.png


示例:

我要加载templates包内的html页面和static包下的静态资源,适用gin框架,我们需要把路径写对,程序会自动寻找到静态资源并加载9ef4b9dce8f749ca9bdbc891a552e880.png

示例代码:

5d25a23371bc4c3eb3d95692750354c0.png


路由组

路由组请求有五种类型:在restful格式中一般是这样认为的:

get() 获得数据

post() 新建

delete() 删除

put() 修改

37dbfb66f75849188c6cbd5a303eb641.png


使用例子:

Tick.GET(relativePath string, handlers …HandlerFunc)

Tick.POST(relativePath string, handlers …HandlerFunc)

以投票为例:

通过r.Group(“路径”){},可以构建一个路由组,并且通过GET和POST分别请求,细节可以参考图中示例,写的很详细了,

82f9d31e03ea48be8d2fdb00762b15e3.png


内容渲染

gin中可以使用c.HTML() 和 c.JSON()以json形式传给前端页面进行渲染

e092c98f5c9a4be581fa94938427c864.png


前端页面通过一个循环,来接收后端传来的数据,进行渲染到页面上

46c77abfc4b4491cb97618ce475da430.png


效果图展示:

f85f0c5e858044ae91143ee34356141b.png


中间件的使用

gin框架引入中间件的使用,

项目中实际操作:例如引入gin框架中redis,

0cfbe8f3cb9c4d82b8bb787a08e811e3.png

相关文章
|
3月前
|
Go
Golang生成随机数案例实战
关于如何使用Go语言生成随机数的三个案例教程。
201 91
Golang生成随机数案例实战
|
6月前
|
负载均衡 监控 Go
使用Golang框架构建分布式系统
本文探讨了使用Golang构建分布式系统的方法。Golang因其高效、简洁的语法和并发支持成为理想的开发语言。文中列举了几个常用的Golang框架,如Echo、Gin、gRPC和NATS等,并强调了服务拆分、通信机制、负载均衡等构建分布式系统的关键要素。通过选择合适的框架,遵循需求分析、技术选型、服务设计等步骤,开发者可以构建出高性能、高可用和可扩展的系统。此外,文中还提供了一个使用gRPC和etcd的简单代码案例来说明实现过程。
300 4
|
7月前
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
3月前
|
Linux Go 开发工具
Golang各平台环境搭建实战
这篇文章详细介绍了如何在Windows、Linux和Mac平台上搭建Golang开发环境,包括下载和安装Go SDK、配置环境变量、安装开发工具如Visual Studio Code和Go扩展,以及如何编写和运行第一个Go程序。
133 3
|
4月前
|
NoSQL Java 测试技术
Golang内存分析工具gctrace和pprof实战
文章详细介绍了Golang的两个内存分析工具gctrace和pprof的使用方法,通过实例分析展示了如何通过gctrace跟踪GC的不同阶段耗时与内存量对比,以及如何使用pprof进行内存分析和调优。
112 0
Golang内存分析工具gctrace和pprof实战
|
4月前
|
关系型数据库 API Go
[golang]在Gin框架中使用JWT鉴权
[golang]在Gin框架中使用JWT鉴权
117 0
|
4月前
|
网络协议 Go
[golang]gin框架接收websocket通信
[golang]gin框架接收websocket通信
115 0
|
7月前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
249 1
|
7月前
|
JSON 监控 安全
Golang深入浅出之-Go语言中的反射(reflect):原理与实战应用
【5月更文挑战第1天】Go语言的反射允许运行时检查和修改结构,主要通过`reflect`包的`Type`和`Value`实现。然而,滥用反射可能导致代码复杂和性能下降。要安全使用,应注意避免过度使用,始终进行类型检查,并尊重封装。反射的应用包括动态接口实现、JSON序列化和元编程。理解反射原理并谨慎使用是关键,应尽量保持代码静态类型。
101 2
|
7月前
|
Go 开发者
Golang深入浅出之-Go语言项目构建工具:Makefile与go build
【4月更文挑战第27天】本文探讨了Go语言项目的构建方法,包括`go build`基本命令行工具和更灵活的`Makefile`自动化脚本。`go build`适合简单项目,能直接编译Go源码,但依赖管理可能混乱。通过设置`GOOS`和`GOARCH`可进行跨平台编译。`Makefile`适用于复杂构建流程,能定义多步骤任务,但编写较复杂。在选择构建方式时,应根据项目需求权衡,从`go build`起步,逐渐过渡到Makefile以实现更高效自动化。
123 2