参考:https://www.kancloud.cn/shuangdeyu/gin_book/949426
可以通过两种方式,最方便的是用 bind 方法,提前定义好 struct,然后匹配到对应的 post/get 数据。
比如我有一个 user 数据需要获取,后面的form:"Id"
等对应的是前端发送给服务器里的数据属性名
type UserForm struct {
Id int `form:"Id"`
IsPublic int `form:"IsPublic"`
Name string `form:"Name"`
Phone string `form:"Phone"`
Message string `form:"Message"`
Plate string `form:"Plate"`
Password string `form:"Password"`
WxQr string `form:"WxQr"`
Desc string `form:"Desc"`
Homepage string `form:"Homepage"`
GaodeInvitation string `form:"GaodeInvitation"`
DateEdit string `form:"DateEdit"`
DateRegister string `form:"DateRegister"`
Hash string `form:"Hash"`
VisitCount int `form:"VisitCount"`
}
前端发送的数据应该是这样的:
{
Id: 1,
Name: "Tina",
IsPublic: 1,
Phone: "1238357231",
...
}
一、使用绑定的方式获取
router.POST("/user/edit", func(ctx *gin.Context) {
var user UserForm
if err := ctx.ShouldBind(&user); err != nil {
// 处理错误请求
return
}
// 这里已经将 Post 数据绑定到 user 中了
}
二、 使用直接获取内容的方式
还有一种方式是直接从 Post 数据中单独取得某个属性的值
数据还是以上面的方式传送到服务器
router.POST("/user/edit", func(ctx *gin.Context) {
name := ctx.PostForm("Name")
}
这样你就能直接获取其中的某个值。
另外还有 PostFormMap
PostFormArray
可用,对应数组和对象
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)