[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

相关文章
|
7月前
|
设计模式 Kubernetes Go
​​什么是Golang项目的“主包精简,逻辑外置”?​
“主包精简,逻辑外置”是Go语言项目的一种设计原则,强调将程序入口保持简单,核心逻辑拆分至其他包,以提升代码可维护性、可测试性及扩展性,适用于CLI工具、Web服务等场景。
162 7
|
10月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
505 35
|
Go
Golang生成随机数案例实战
关于如何使用Go语言生成随机数的三个案例教程。
423 91
Golang生成随机数案例实战
|
12月前
|
人工智能 开发框架 数据可视化
Eino:字节跳动开源基于Golang的AI应用开发框架,组件化设计助力构建AI应用
Eino 是字节跳动开源的大模型应用开发框架,帮助开发者高效构建基于大模型的 AI 应用。支持组件化设计、流式处理和可视化开发工具。
1947 27
|
负载均衡 监控 Go
使用Golang框架构建分布式系统
本文探讨了使用Golang构建分布式系统的方法。Golang因其高效、简洁的语法和并发支持成为理想的开发语言。文中列举了几个常用的Golang框架,如Echo、Gin、gRPC和NATS等,并强调了服务拆分、通信机制、负载均衡等构建分布式系统的关键要素。通过选择合适的框架,遵循需求分析、技术选型、服务设计等步骤,开发者可以构建出高性能、高可用和可扩展的系统。此外,文中还提供了一个使用gRPC和etcd的简单代码案例来说明实现过程。
966 4
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
Linux Go 开发工具
Golang各平台环境搭建实战
这篇文章详细介绍了如何在Windows、Linux和Mac平台上搭建Golang开发环境,包括下载和安装Go SDK、配置环境变量、安装开发工具如Visual Studio Code和Go扩展,以及如何编写和运行第一个Go程序。
915 3
|
NoSQL Java 测试技术
Golang内存分析工具gctrace和pprof实战
文章详细介绍了Golang的两个内存分析工具gctrace和pprof的使用方法,通过实例分析展示了如何通过gctrace跟踪GC的不同阶段耗时与内存量对比,以及如何使用pprof进行内存分析和调优。
556 0
Golang内存分析工具gctrace和pprof实战
|
关系型数据库 API Go
[golang]在Gin框架中使用JWT鉴权
[golang]在Gin框架中使用JWT鉴权
363 0
|
网络协议 Go
[golang]gin框架接收websocket通信
[golang]gin框架接收websocket通信
432 0