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

go语言gin框架学习

让框架去做http解包封包等,让我们的精力用在应用层开发
MVC模式
M: model,操作数据库gorm
view 视图 处理模板页面
contoller 控制器 路由 +逻辑函数

解决gin相关代码飘红的问题

记得启用gomodule
go env -w GO111MODULE=on然后到相应目录下执行 go mod init xxx
go mod tidy 
这样应该可以解决代码飘红,说找不到对应包的问题由于墙的原因 需要更换代理请执行 go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/

一、初步使用

  • 搭建好go的环境,目录结构如下
    在这里插入图片描述
//main.go
package mainimport "github.com/gin-gonic/gin"
func main()	{gin.Default()
}
go mod init quickstart
go mod tidy
  • 如果下载失败,换成golang官方源试试
 go env -w GOPROXY=https://proxy.golang.org,direct
  • 搭建一个基础的后端
//main.go
package mainimport "github.com/gin-gonic/gin"
func getuser(ctx *gin.Context){ctx.JSON(200,gin.H{"username":"you",})
}
func main()	{//获取引擎对象,即路由对象r:=gin.Default()//路由映射函数r.GET("/user",getuser)//启动:默认本机8080端口 类似django的runserverr.Run("127.0.0.1:8081")
}

访问相应路径如下
在这里插入图片描述

二、路由系统初识

2.1 服务端对客户端发起各种请求方式的处理

2.1.1 同一个资源的不同请求方式

//路由映射函数同一个路由,不同的方法执行不同的逻辑
r.GET("/book", func(context *gin.Context) {context.JSON(200,gin.H{"msg":"查询成功",})})
r.POST("/book", func(context *gin.Context) {context.JSON(200,gin.H{"msg":"新增成功",})})r.PUT("/book", func(context *gin.Context) {context.JSON(200,gin.H{"msg":"修改成功",})})r.DELETE("/book", func(context *gin.Context) {context.JSON(200,gin.H{"msg":"删除成功",})
})

2.1.2 Any

// any请求方式都可以访问
r.Any("/index", func(context *gin.Context) {context.JSON(200,gin.H{"msg":"任何方式都可以访问",})})

2.1.3 NoRoute


//所有路由都无法访问时,不管何种请求方式,走noroute时返回相应信息
r.NoRoute( func(context *gin.Context) {context.JSON(404,gin.H{"msg":"404 not find",})})

2.2 路由分组

  • gin框架没有像django那样的路由分组需要自己写
http://www.lryc.cn/news/42361.html

相关文章:

  • Java奠基】Java经典案例讲解
  • 新闻文本分类任务:使用Transformer实现
  • 如何在 Vue 中使用 防抖 和 节流
  • 美国Linux服务器系统增强安全的配置
  • 【史上最全面esp32教程】oled显示篇
  • 第十四届蓝桥杯三月真题刷题训练——第 21 天
  • css绘制一个Pinia小菠萝
  • OpenCV入门(二十)快速学会OpenCV 19 对象测量
  • TCP和UDP协议的区别?
  • 【C语言蓝桥杯每日一题】——排序
  • 学校官网的制作
  • 【云原生】k8s集群命令行工具kubectl之故障排除和调试命令
  • AJAX,Axios,JSON简单了解
  • 私域流量该如何打造?这套模式直接借鉴
  • 【jenkins部署】一文弄懂自动打包部署(前后台)
  • 应届生投腾讯,被面试官问了8个和 ThreadLocal 相关的问题。
  • Linux命令scp用法
  • 数据质量怎么监控
  • .NET Core 实现Excel的导入导出
  • 排好队,一个一个来:宫本武藏教你学队列(附各种队列源码)
  • C语言--动态内存管理1
  • HTTPS 的工作原理
  • 游戏开发中建议使用半兰伯特光照
  • JavaScript到底如何存储数据?
  • python实战应用讲解-【numpy专题篇】numpy应用案例(一)(附python示例代码)
  • 网络割接项目
  • SpringBoot整合数据可视化大屏使用
  • 蓝桥杯Web前端练习题-----水果拼盘
  • [攻城狮计划]如何优雅的在RA2E1上运行RT_Thread
  • 1.linux操作命令