GET传值
/**
GET传值
*/
r.GET("/data", func(a *gin.Context) {
//拿到前端传过来的数据
username := a.Query("name")
age := a.DefaultQuery("age", "20") //可以设置默认值
a.JSON(200, gin.H{
"name": username,
"age": age,
})
})
POST传值
/**
渲染页面
*/
r.GET("/login", func(a *gin.Context) {
a.HTML(200, "content/postto.html", gin.H{})
})
/**
post传值 获取表单数据
*/
r.POST("/user", func(a *gin.Context) {
name := a.PostForm("username")//不可以设置默认值
pwd := a.PostForm("password")
age := a.DefaultPostForm("age", "21")//可以设置默认值
a.JSON(200, gin.H{
"username": name,
"password": pwd,
"age": age,
})
})
重定向
/*
*
重定向
*/
func _redirect(c *gin.Context) {
c.Redirect(301, "http://www.baidu.com")
}
//创建的默认路由引擎
r := gin.Default()
//重定向
r.GET("/baidu", _redirect)
如何将POST、GET传过来的数据绑定到结构体
/**
将get
*/
r.GET("getUser", func(a *gin.Context) {
userdata := &userInfo{}
err := a.ShouldBind(&userdata)
if err == nil {
a.JSON(200, userdata)
} else {
a.JSON(200, gin.H{
"msg": err.Error(),
})
}
})
*******post一样道理*******
将XML传递过来的数据绑定到结构体
/**
获取xml页面的数据
*/
r.POST("/xml", func(a *gin.Context) {
article := &Artcle{}
xmlSlicedata, _ := a.GetRawData()
err := xml.Unmarshal(xmlSlicedata, &article)
if err == nil {
a.JSON(200, article)
} else {
a.JSON(400, err.Error())
}
})
动态路由
r.POST("/xml/:uid", func(a *gin.Context) {
//直接接收参数
})
路由文件抽离
/**
路由分组
*/
indexRoutes := r.Group("/index")
{
indexRoutes.GET("/", func(a *gin.Context) {
})
indexRoutes.POST("/userlist", func(a *gin.Context) {
})
}
/**
路由抽离
*/
package routes
import "github.com/gin-gonic/gin"
func IndexRoutesInit(r *gin.Engine) {
/**
路由分组
*/
indexRoutes := r.Group("/index")
{
indexRoutes.GET("/", func(a *gin.Context) {
})
indexRoutes.POST("/userlist", func(a *gin.Context) {
})
}
}
//调用抽离的路由文件
r := gin.Default()
routes.AdminRoutesInit(r)
routes.ApiRoutesInit(r)
routes.IndexRoutesInit(r)