[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

相关文章
|
1月前
|
SQL 关系型数据库 MySQL
探索Gorm - Golang流行的数据库ORM框架
探索Gorm - Golang流行的数据库ORM框架
|
15天前
|
负载均衡 监控 Go
使用Golang框架构建分布式系统
本文探讨了使用Golang构建分布式系统的方法。Golang因其高效、简洁的语法和并发支持成为理想的开发语言。文中列举了几个常用的Golang框架,如Echo、Gin、gRPC和NATS等,并强调了服务拆分、通信机制、负载均衡等构建分布式系统的关键要素。通过选择合适的框架,遵循需求分析、技术选型、服务设计等步骤,开发者可以构建出高性能、高可用和可扩展的系统。此外,文中还提供了一个使用gRPC和etcd的简单代码案例来说明实现过程。
31 4
|
1月前
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
1月前
|
JSON JavaScript 前端开发
Golang深入浅出之-Go语言JSON处理:编码与解码实战
【4月更文挑战第26天】本文探讨了Go语言中处理JSON的常见问题及解决策略。通过`json.Marshal`和`json.Unmarshal`进行编码和解码,同时指出结构体标签、时间处理、omitempty使用及数组/切片区别等易错点。建议正确使用结构体标签,自定义处理`time.Time`,明智选择omitempty,并理解数组与切片差异。文中提供基础示例及时间类型处理的实战代码,帮助读者掌握JSON操作。
31 1
Golang深入浅出之-Go语言JSON处理:编码与解码实战
|
1月前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
160 1
|
1月前
|
JSON 监控 安全
Golang深入浅出之-Go语言中的反射(reflect):原理与实战应用
【5月更文挑战第1天】Go语言的反射允许运行时检查和修改结构,主要通过`reflect`包的`Type`和`Value`实现。然而,滥用反射可能导致代码复杂和性能下降。要安全使用,应注意避免过度使用,始终进行类型检查,并尊重封装。反射的应用包括动态接口实现、JSON序列化和元编程。理解反射原理并谨慎使用是关键,应尽量保持代码静态类型。
37 2
|
1月前
|
Go 开发者
Golang深入浅出之-Go语言项目构建工具:Makefile与go build
【4月更文挑战第27天】本文探讨了Go语言项目的构建方法,包括`go build`基本命令行工具和更灵活的`Makefile`自动化脚本。`go build`适合简单项目,能直接编译Go源码,但依赖管理可能混乱。通过设置`GOOS`和`GOARCH`可进行跨平台编译。`Makefile`适用于复杂构建流程,能定义多步骤任务,但编写较复杂。在选择构建方式时,应根据项目需求权衡,从`go build`起步,逐渐过渡到Makefile以实现更高效自动化。
36 2
|
1月前
|
XML JSON 人工智能
探索Gin框架:Golang Gin框架请求参数的获取
探索Gin框架:Golang Gin框架请求参数的获取
|
1月前
|
Go
golang学习3,golang 项目中配置gin的web框架
golang学习3,golang 项目中配置gin的web框架
|
1月前
|
存储 人工智能 Go
探索Gin框架:Golang使用Gin完成文件上传
探索Gin框架:Golang使用Gin完成文件上传