go下载gin框架

news/2025/2/20 16:30:56/

1、开启Go Modules功能(已开启可忽略此步骤)

go module是go官方自带的go依赖管理功能,从Go 1.13版本正式推荐使用,它可以将项目下的所有依赖集中到 go.mod 文件,进行集中管理。使用go module管理依赖将会在项目根目录下生成两个文件 go.mod(负责记录当前项目的所有依赖)和go.sum(记录每个依赖库的版本和哈希值)

我们使用如下命令开启go modules功能:

go env -w GO111MODULE=on

2、生成go.mod文件(目录下已有此文件可忽略此步骤)

go mod init [项目文件夹名称]

例子

go mod init my_gin

3、使用国内代理

go env -w GOPROXY=https://goproxy.cn

4、下载gin框架

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

结果如下图
在这里插入图片描述

5、常见错误

5.1、$GOPATH/go.mod exists but should not

问题原因: 老版本我们都是在环境变量里面设置GOPATH用来管理项目的,我们第一步使用了GO ModulesGOPATHGO Modules这两个都是用来管理项目的,开启模块支持后生成的go.mod文件,不能在GOPATH 指定的目录下
解决办法 1、: 不要在环境变量指定的GOPATH目录下创建项目,在其他目录下创建项目,你的环境变量GOPATH目录下不能存在go.mod文件(推荐)
解决办法 2、: 将环境变量GOPATH删除,因为GOPATH和go.mod都是用来管理项目,二者不能在同一个目录下,go.mod比GOPATH更高级
GOPATH(项目管理)和go.mod(go modules项目管理)比较:
1、最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面,下载的依赖包也没有版本概念,这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖无法依赖同一个第三方的库的不同版本,并且,代码开发必须在GOPATH的src目录下。这在实际开发中造成许多的问题。
2、go mod的优势,项目不在需要放到$GOPATH/src,依赖包的版本控制
交由go.mod文件控制。在go.mod用require语句指定包和版本 ,go命令会根据指定的路径和版本下载包,指定版本时可以用latest,这样它会自动下载指定包的最新版本;如果,go.mod中没有指定,go命令会自动下载代码中的依赖的最新版本
在这里插入图片描述

5.2、错误go: go.mod file not found in current directory or any parent directory.

错误原因,缺少go.mod文件,按照第一步跟着操作即可

6、在项目目录下新建main.go文件

package mainimport "github.com/gin-gonic/gin"func main() {//创建默认的路由引擎web := gin.Default()//配置路由web.GET("/", func(c *gin.Context) {c.String(200, "值:%v", "游戏是用来娱乐放松的,不是用来浪费青春的")})web.GET("/news", func(c *gin.Context) {c.String(200, "新闻页面")})//启动一个web服务web.Run(":8000")
}

8、运行项目

go run main.go

在这里插入图片描述

9、golang程序的热加载

以上操作每当我们修改代码的的时候,就邀重新运行一次go run main.go实行内容刷新 ,这样很麻烦,热加载就是当我们修改代码时,程序自动重新加载并且执行,省去了手动执行编译的过程

go get github.com/pilu/fresh

在这里插入图片描述
安装了fresh之后会在GOPATH目录下生成一个bin目录,里面有一个fresh.exe文件
在这里插入图片描述
在这里插入图片描述
我们把这个bin目录添加到环境变量中即可
在这里插入图片描述
在这里插入图片描述
在项目目录下运行命令fresh,后续修改内容不需要重新运行go run main.go了,只需要刷新浏览器即可

fresh

在这里插入图片描述


http://www.ppmy.cn/news/36986.html

相关文章

【学习笔记】计算机视觉与深度学习(5.经典网络分析)

学习视频: 鲁鹏-计算机视觉与深度学习 同系列往期笔记: 【学习笔记】计算机视觉与深度学习(1.线性分类器) 【学习笔记】计算机视觉与深度学习(2.全连接神经网络) 【学习笔记】计算机视觉与深度学习(3.卷积与图像去噪/边缘提取/纹理表示) 【学习笔记】计…

mysql binlog 的配置与使用

1. 查看 binlog 是否开启 show global variables like log_bin;sql_log_bin : 当前会话 是否要记录 binlog 2. mysql 添加如下配置 修改 my.cnf 文件,一般来说都位于 /etc/my.cnf 这边。 在 [mysqld] 下写入如下内容: ## binlog d的日志模式 binlog-…

LCHub:ChatGPT4和低代码来临,程序员面临下岗?

一个网友吐槽道: “ 建站出来了,你们说程序员会失业。 低代码出来了,你们说程序员会失业。 Copilot出来了,你们说程序员会失业。 Chatgpt出来了,你们说程序员会失业 虽然这只是网友的吐槽,但却引起了小编的好奇。为何程序员那么容易被新技术取代?今天小编打算跟大家…

一文总结经典卷积神经网络CNN模型

一般的DNN直接将全部信息拉成一维进行全连接,会丢失图像的位置等信息。 CNN(卷积神经网络)更适合计算机视觉领域。下面总结从1998年至今的优秀CNN模型,包括LeNet、AlexNet、ZFNet、VGG、GoogLeNet、ResNet、DenseNet、SENet、Sque…

大数据分析工具Power BI(十四):制作相关性分析图表

制作相关性分析图表 相关性分析可以分析两个指标之间的关系,验证指标之间是否存在某种关系。可以使用散点图、气泡图来进行相关性分析。 一、散点图 需求:使用散点图展示"2022年点播订单表"每月订单量和营收金额相关性。 新建页面并命名为散点图,

Three.js + AI:WebGL的探险之旅

Three.js可以创建交互式 3D 网站、游戏、引人注目的产品展示,或任何你能想象到的东西,我试着用它来创建我的个人作品网站。 推荐:用 NSDT场景设计器 快速搭建3D场景。 1、为什么我使用 Three.js 我一直觉得three.js很有趣,想自己…

工作8年了,从“功能测试”到了现在的“测试开发”,年薪50W+,分享下我的心得

向上的路很难走,但一旦踏上去,每一步都算数! 为什么转型为测试开发? 不懂开发的手工测试是新时代“文盲” 在移动互联网和大数据时代,为满足市场和业务需求,互联网应用既要实现产品功能快速迭代&#xf…

sqlserver大量数据查询的优化方式--查询结构优化

一、查询语句书写要点&#xff1a; 1.应尽量避免在 where 子句中使用!或<>操作符&#xff0c;否则将引擎放弃使用索引而进行全表扫描。 2.对查询进行优化&#xff0c;应尽量避免全表扫描&#xff0c;首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在…