当前位置: 首页 > news >正文

Gin 框架第一课:从 0 搞懂 Gin 最基础的路由

Gin 最开始真正需要学的东西只有一个:

路由

因为整个 Web 开发本质上就是:

浏览器发送请求 服务器接收请求 服务器返回数据

而 Gin 最核心的工作:

就是处理这些请求。

所以今天这篇:

只讲 Gin 最最开始、最基础、也是最重要的内容:

Gin 路由

一、什么是 Gin

Gin 是 Go 语言中的 Web 框架。

它专门用来开发:

  • 网站后端
  • API接口
  • Web服务

比如:

登录接口 用户接口 商品接口 订单接口

这些东西:

本质上都是:

路由 + 请求处理

二、安装 Gin

创建项目:

go mod init gin-demo

安装 Gin:

go get-ugithub.com/gin-gonic/gin

安装完成后:

项目里会出现:

go.mod go.sum

说明安装成功。


三、第一个 Gin 程序

创建:

main.go

写入代码:

packagemainimport"github.com/gin-gonic/gin"funcmain(){r:=gin.Default()r.GET("/",func(c*gin.Context){c.String(200,"hello gin")})r.Run()}

运行:

go run main.go

浏览器访问:

http://localhost:8080

页面显示:

hello gin

你的第一个 Gin 程序就完成了。


四、先理解整个执行流程

很多新手的问题是:

代码会写 但是根本不知道发生了什么

现在把整个流程理清。


第一步

浏览器访问:

http://localhost:8080

第二步

Gin 接收到请求。


第三步

Gin 发现:

r.GET("/")

这个路由匹配成功。


第四步

执行:

func(c*gin.Context){c.String(200,"hello gin")}

第五步

服务器返回:

hello gin

浏览器显示结果。


五、逐行讲解代码(重点)


1. gin.Default()

r:=gin.Default()

作用:

创建 Gin 引擎

你可以理解成:

启动了一个 Web 服务器

后面所有路由:

都注册到:

r

里面。


2. GET()

r.GET("/",func(c*gin.Context){})

这里:

GET

表示:

GET请求

也就是浏览器最普通的访问方式。


“/” 是什么

"/"

表示:

根路径

也就是:

http://localhost:8080/

func 是什么

func(c*gin.Context){}

这个函数:

就是请求处理函数。

当有人访问:

/

时:

这个函数就会执行。


六、什么是路由(核心)

路由本质:

URL 和函数的对应关系。

比如:

访问 /login 执行登录逻辑 访问 /user 执行用户逻辑

这就是:

路由

示例

r.GET("/hello",func(c*gin.Context){c.String(200,"hello")})r.GET("/user",func(c*gin.Context){c.String(200,"user")})

访问:

/hello

返回:

hello

访问:

/user

返回:

user

七、HTTP 请求方式

Web 开发里:

不仅仅只有 GET。

常见请求:

方法作用
GET获取数据
POST提交数据
PUT修改数据
DELETE删除数据

1. GET

最常见。

r.GET("/hello",func(c*gin.Context){})

浏览器直接访问:

就是 GET 请求。


2. POST

r.POST("/login",func(c*gin.Context){c.String(200,"login success")})

POST 一般用于:

  • 登录
  • 注册
  • 提交表单

八、返回数据

Gin 最重要的工作之一:

就是:

返回响应

1. 返回字符串

c.String(200,"hello gin")

含义:

状态码:200 返回内容:hello gin

2. 状态码是什么

200

表示:

请求成功

常见状态码:

状态码含义
200成功
404找不到页面
500服务器错误

九、Context 初步理解

很多新人最怕:

c*gin.Context

实际上你现在只需要记住一句话:

Context 用来处理请求和响应。

以后:

  • 获取参数
  • 返回 JSON
  • 获取请求头

都靠它。


十、多个路由

Gin 可以注册很多路由。

packagemainimport"github.com/gin-gonic/gin"funcmain(){r:=gin.Default()r.GET("/",func(c*gin.Context){c.String(200,"首页")})r.GET("/user",func(c*gin.Context){c.String(200,"用户页面")})r.GET("/login",func(c*gin.Context){c.String(200,"登录页面")})r.Run()}

十一、修改端口

默认:

8080

修改:

r.Run(":9000")

访问:

http://localhost:9000

十二、为什么 Gin 这么火

因为它真的很简单。

对比很多框架:

Gin 的代码非常直观。

比如:

r.GET()

你一眼就知道:

这是 GET 请求

所以:

Go 后端开发里:

Gin 基本属于必学框架。


十三、最后总结

Gin 第一课最核心的内容:

其实就一句话:

用户访问一个 URL,Gin 会执行对应的函数。

例如:

r.GET("/hello",func(c*gin.Context){c.String(200,"hello")})

本质就是:

访问 /hello 执行函数 返回 hello

这就是整个 Web 开发最基础的模型。

后面所有复杂项目:

本质上都是在这个基础上不断扩展

http://www.jsqmd.com/news/799245/

相关文章:

  • 「2026实测」论文满篇标红怎么救?3款降AI工具与3大手改技巧盘点
  • Elasticsearch 磁盘使用率超过 85% 导致只读怎么解锁?
  • Bert-VITS2语音合成实战:从原理到部署的完整指南
  • Figma设计系统自动化:生成AI就绪的DESIGN.md文档
  • 构建自动化营销数据管道:打通Google Ads、Meta Ads与GA4的数据孤岛
  • 如何通过3个关键策略实现Inter字体70%性能提升
  • PyTorch模型保存与加载的5个实战场景:从单卡训练到多卡部署的完整避坑指南
  • 同城配送介绍详解:从入门到实战全攻略
  • 芯片测试中的扫描压缩技术解析与应用
  • uni-number-box深度解析:从基础属性到高级双向绑定实战
  • Oracle JDBC驱动版本踩坑记:从Protocol violation到Clob写入失败的完整排查与升级指南
  • 2026论文降AI实测:保留排版格式,3款工具与手工微调指南
  • MySQL主从复制如何实现读写分离_利用ProxySQL进行流量分发
  • 量子优化算法QAOA在车辆路径问题中的应用与改进
  • 如何实现C++ Web 自动化测试实战:常用函数全解析与场景化应用指南
  • 如何确定SQL字段是否为空_使用IS NULL与IS NOT NULL
  • 别再猜了!Adams与MATLAB/Simulink联合仿真时,驱动函数的‘度’到底该怎么传?
  • MCP协议实践:为AI助手构建工具调用能力与ararahq-mcp项目解析
  • 大数据技生态中Hadoop、Spark、Hive、HDFS之间的区别
  • 【深度解析】Hermes Agent + Ion UI:从自治代理到 Agentic OS 的桌面 AI 自动化实践
  • DeepSeek V4 API实战:从零搭建AI编程助手全流程
  • 自适应联邦学习优化自监督语音模型微调
  • UNet3+凭什么比UNet++更轻量又好用?深入对比参数量与设计思想
  • 基于多品牌定制化视频监控软件
  • DPDK LPM路由查找性能调优全记录:我是如何把查找速度再提升30%的
  • 【2024最严审核季】ElevenLabs Independent计划通过率骤降41%?用真实数据还原:技术文档完整性、域名可信度、流量真实性三重权重模型
  • 双端/欲望之尾 欲望の尾 Tail of Desire Ver1.01 一款由Bluebone制作组倾力打造的日式RPG神作,
  • 氛围工程:提升团队效能与代码质量的无形引擎
  • Vue3聊天项目深度优化:如何用V3Scroll和V3Layer提升仿QQ界面的交互体验与性能?
  • 应对2026检测新规:论文AI率太高怎么办?3款实测工具与避坑经验