gin框架基础

本文介绍了Gin框架中如何使用FORM和JSON格式进行数据绑定,包括表单实体结构定义、GET和POST请求处理,以及响应数据的不同返回方式,如字符串、JSON和HTML。同时探讨了请求路由组的应用和中间件的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、表单实体绑定
(1) FORM格式绑定
type User struct{

	UserName string   `form:"username" binding:"required"`

	Phone string  	`form:"phone" binding:"required"`

}
  1. 处理GET请求:

    context :上下文

    var user Use
    
    err := context.ShouldBindQuery(&user)
    
  2. 处理POST请求

    1. var user User
    
       context.ShouldBind(&user)
    
(2)JSON格式绑定

context.BindJSON(&user)

二、多数据格式返回请求结果
  1. 返回字符串

context.Writer.Write([]byte("string"))

  1. 返回 JSON 格式
    context.JSON(200, gin.H{
    
    key: value
    
    })
    
  2. HTML页面

    engine.LoadHTMLGlob("./html/*") //加载静态文件

    engine.GET()之前

    context.HTML(200, "index.html", obj:nil)

    HTML属于静态文件

    3.1 数据返回到HTML页面

    –模板语言{{.fullPath}}

    obj: gin.H{
    
    "fullPath": fullPath,
    
    }
    

    3.2 加载静态文件

    <img src="...">

    设置静态资源目录:

    engine.Static(访问路径:"/img", 目录路径: "./img")

三、请求路由组的使用
engine := gin.Default()
userGroup := engine.Group("/user") //分级
userGroup.Get("/register", function(context *gin.context))
3.1 补充:Delete操作
engine.Delete("/:id", func(context *gin.Context){
    userID := context.Param(key:"id")
})
四、中间件
func Middleware() gin.HandlerFunc{
    return func(context *gin.Context){
        path := context.FullPath()
        method := context.Request.Method
        fmt.Println("请求路径:", path)
        fmt.Println("请求方法: ", method)
    }
}

func main(){
    engine := gin.Default()
    engine.Use(Middleware())
    engine.GET("/PATH", Middleware(), func(context, *gin.Context){
        ...
    })
}

context.Next()

//context.Next()将中间件执行的函数一分为二,遇到context.Next(),程序不再往下执行,系统寻找下一个gin.Context类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值