建手机wap网站大概多少钱,长沙室内设计学校,wordpress 文字插件,小程序搭建流程有哪五步骤Gin参数接收 文章目录 Gin参数接收1.各个参数的接收方法Gin中发送JSON数据Gin接收querystring数据Gin接收Form的参数Gin接收URI参数 2.参数绑定方式接收(更加方便)推荐一款软件 1.各个参数的接收方法
声明: 这里的c都是c *gin.Context中的c
Gin中发送JSON数据 在传输或接受JS…Gin参数接收 文章目录 Gin参数接收1.各个参数的接收方法Gin中发送JSON数据Gin接收querystring数据Gin接收Form的参数Gin接收URI参数 2.参数绑定方式接收(更加方便)推荐一款软件 1.各个参数的接收方法
声明: 这里的c都是c *gin.Context中的c
Gin中发送JSON数据 在传输或接受JSON数据时,通常习惯通过创建结构体的方式存储数据 注意点: 结构体中成员名需要大写字母开头,否则无法访问需要再成员名后添加tag标签 ,方便传输以及接收数据 方法 func (c *Context) JSON(code int, obj any) {}code是状态码,例如:http.StatusOK这是go语言内置变量obj指需要传入的数据 代码案例: package mainimport (github.com/gin-gonic/ginlognet/http
)// User 构建数据结构(存储json数据
// 注意:1.需要大写字母开头否则无法访问
// 注意:2.json是tag标签,这样方便定义前端显示名称
type User struct {Name string json:nameGender string json:genderAge int json:age
}func main() {//启动服务器r : gin.Default()//发起请求r.GET(/Json, func(c *gin.Context) {data : User{Name: 贤哥,Gender: 男,Age: 18,}c.JSON(http.StatusOK, gin.H{data: data,})})//运行服务器err : r.Run(:9000)if err ! nil {log.Println(启动错误:, err)}
} 传数据习惯用gin中的gin.H{} Gin接收querystring数据 介绍: //querystring 数据是在URl上的参数,例如:https://www.bing.com/search?q邓超
//这里的q 邓超就是querystring,其中q是变量,邓超是值方法: c.Query(key):根据变量名接收值c.DefaultQuery(key,defaultValue):根据变量名接收值,如果没有该变量,就输出定义好的值c.GETQuery(key):返回值有两个,一个是接收到的值,一个是布尔值,可以通过判断布尔值查看是否接受到值 代码案例 package mainimport (github.com/gin-gonic/ginlognet/http
)//querystring 数据是在URl上的参数,例如:https://www.bing.com/search?q邓超
//这里的q 邓超就是querystring,其中q是变量,邓超是值type User struct {Name string json:nameAge string json:age
}func main() {//创建Gin变量r : gin.Default()//发起请求r.GET(/query, func(c *gin.Context) {//单纯接收querystring的值data1 : c.Query(query)//接收querystring,如果没有接收到值就,输出定义好的值(类似这里的nothing)data2 : c.DefaultQuery(query, nothing)//获取querystring的值,返回当前值和bool值,如何bool为false,默认返回空值data3, ok : c.GetQuery(query)if !ok {data3 nothing}//可以将querystring的值,解析到结构体中存储//注意:结构体的成员名和querystring的变量名必须一致,否则解析不到var user Usererr : c.BindQuery(user)if err ! nil {log.Println(err)return}//可以用于相同变量却有多个值的情况接收变量,接收后的变量会被保存在切片中//query尼玛querytm 输出 query4:[尼玛,tm]data4 : c.QueryArray(query)//通过Json数据发出c.JSON(http.StatusOK, gin.H{query1: data1,query2: data2,query3: data3,query4: data4,user: user,})})//启动服务器err : r.Run(:9000)if err ! nil {log.Println(启动失败:, err)}
} Gin接收Form的参数 结论: 方法的用法和querystring的基本一致 代码: package mainimport (github.com/gin-gonic/ginlognet/http
)//任务:接收form的数据
//1.创建form表单
//2.解析数据func main() {r : gin.Default()//解析模板r.LoadHTMLFiles(./login.html, ./index.html)//渲染模板(渲染登录页面r.GET(/login, func(c *gin.Context) {c.HTML(http.StatusOK, login.html, nil)})//点击form的登录按钮提交数据后会发起method方法的请求//所以得写一个post方法以及,输出数据到post渲染的网页r.POST(/login, func(c *gin.Context) {//单个接收表单数据//username : c.PostForm(username)password : c.PostForm(password)//单个接收表单的数据,如果没有参数就输出notDefault//username : c.DefaultPostForm(username, notDefault)//以数组的方式接收值username : c.PostFormArray(username)//password, ok : c.GetPostForm(username)c.HTML(http.StatusOK, index.html, gin.H{username: username[0],password: password,})//总结接收表单数据的各种函数基本和接收querystring参数的用法一致})//启动服务器err : r.Run(:9000)if err ! nil {log.Println(err)return}
}
Gin接收URI参数 介绍 //了解什么是URI参数
//例如一条URL为http://ouzhenxian.com/blog/2023/1
//这里的URL中,可以指定2023和1为参数(是否是参数是由你的接收格式决定的
//格式: /blog/:year/:mouth,:后面的参数就是需要被接收的数据c.Param方法和querystring用法基本一致 代码: package mainimport (github.com/gin-gonic/ginnet/http
)
func main() {r : gin.Default()r.GET(/blog/:year/:mouth, func(c *gin.Context) {year : c.Param(year)mouth : c.Param(mouth)c.JSON(http.StatusOK, gin.H{year: year,mouth: mouth,})})//启动服务器err : r.Run(:9000)if err ! nil {return}
}2.参数绑定方式接收(更加方便) 核心方法c.ShouldBind() 优点: 相比前面的更加快捷高效 代码展示 package mainimport (fmtgithub.com/gin-gonic/ginlognet/http
)//任务: 利用ShouldBind()函数绑定参数type UserInfo struct {Username string json:username form:username uri:username query:username //注意2点: 字段名需要大写,需要写tag,否则找不到Password string json:password form:password uri:password query:password
}func main() {r : gin.Default()//发出请求r.GET(/json, func(c *gin.Context) {var user UserInfoerr : c.ShouldBindJSON(user) //注意:这里需要写,否则是值传递,无法修改值if err ! nil {log.Println(err)return}//处理数据fmt.Printf(%#v\n, user) //一起输出c.JSON(http.StatusOK, gin.H{status: ok,})})r.GET(/query, func(c *gin.Context) {var user UserInfoerr : c.ShouldBindQuery(user) //注意:这里需要写,否则是值传递,无法修改值if err ! nil {log.Println(err)return}//处理数据fmt.Printf(%#v\n, user) //一起输出c.JSON(http.StatusOK, gin.H{status: ok,})})r.POST(/form, func(c *gin.Context) {var user UserInfoerr : c.ShouldBind(user) //注意:这里需要写,否则是值传递,无法修改if err ! nil {log.Println(err)return}//处理数据fmt.Printf(%#v\n, user) //一起输出c.JSON(http.StatusOK, gin.H{status: ok,})})r.GET(/uri/:username/:password, func(c *gin.Context) {var user UserInfoerr : c.ShouldBindUri(user) //注意:这里需要写,否则是值传递,无法修改值if err ! nil {log.Println(err)return}//处理数据fmt.Printf(%#v\n, user) //一起输出c.JSON(http.StatusOK, gin.H{status: ok,})})//启动服务器err : r.Run(:8080)if err ! nil {log.Println(err)return}}注意点: 1.结构体成员名首字母大写2.需要指定tag3.ShouldBind()接受的值必须是地址值(例如:user) 说明: Gin框架中不是每个数据格式都有对应的ShouldBind函数 例如:这里的JSON数据有—c.ShouldBindJSON(user),而这里的表单Form数据没有对应的和函数,那就使用通用的c.ShouldBind(user) 推荐一款软件
Postman软件: 在做网络开发过程中可以非常方便的传输数据测试,有兴趣的可以自行查看,该软件需要科学 文章转载自: http://www.morning.dydqh.cn.gov.cn.dydqh.cn http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.kxqpm.cn.gov.cn.kxqpm.cn http://www.morning.horihe.com.gov.cn.horihe.com http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.gwsll.cn.gov.cn.gwsll.cn http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn http://www.morning.mbfj.cn.gov.cn.mbfj.cn http://www.morning.ncfky.cn.gov.cn.ncfky.cn http://www.morning.gfrtg.com.gov.cn.gfrtg.com http://www.morning.rbkml.cn.gov.cn.rbkml.cn http://www.morning.mpsnb.cn.gov.cn.mpsnb.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.srgyj.cn.gov.cn.srgyj.cn http://www.morning.wmcng.cn.gov.cn.wmcng.cn http://www.morning.mynbc.cn.gov.cn.mynbc.cn http://www.morning.lrflh.cn.gov.cn.lrflh.cn http://www.morning.qiyelm.com.gov.cn.qiyelm.com http://www.morning.dkbgg.cn.gov.cn.dkbgg.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn http://www.morning.bzwxr.cn.gov.cn.bzwxr.cn http://www.morning.smzr.cn.gov.cn.smzr.cn http://www.morning.dfrenti.com.gov.cn.dfrenti.com http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.hkpn.cn.gov.cn.hkpn.cn http://www.morning.knryp.cn.gov.cn.knryp.cn http://www.morning.tdscl.cn.gov.cn.tdscl.cn http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn http://www.morning.qztdz.cn.gov.cn.qztdz.cn http://www.morning.tlzbt.cn.gov.cn.tlzbt.cn http://www.morning.ydzly.cn.gov.cn.ydzly.cn http://www.morning.hmdyl.cn.gov.cn.hmdyl.cn http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn http://www.morning.mgwpy.cn.gov.cn.mgwpy.cn http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn http://www.morning.ngcbd.cn.gov.cn.ngcbd.cn http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn http://www.morning.fcftj.cn.gov.cn.fcftj.cn http://www.morning.hlrtzcj.cn.gov.cn.hlrtzcj.cn http://www.morning.lrprj.cn.gov.cn.lrprj.cn http://www.morning.wnywk.cn.gov.cn.wnywk.cn http://www.morning.bnfsw.cn.gov.cn.bnfsw.cn http://www.morning.glxmf.cn.gov.cn.glxmf.cn http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn http://www.morning.ycgrl.cn.gov.cn.ycgrl.cn http://www.morning.rhmk.cn.gov.cn.rhmk.cn http://www.morning.xqxlb.cn.gov.cn.xqxlb.cn http://www.morning.tdscl.cn.gov.cn.tdscl.cn http://www.morning.hcwlq.cn.gov.cn.hcwlq.cn http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn http://www.morning.tpfny.cn.gov.cn.tpfny.cn http://www.morning.pljxz.cn.gov.cn.pljxz.cn http://www.morning.ghxsn.cn.gov.cn.ghxsn.cn http://www.morning.rnmc.cn.gov.cn.rnmc.cn http://www.morning.rbgwj.cn.gov.cn.rbgwj.cn http://www.morning.blqsr.cn.gov.cn.blqsr.cn http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn http://www.morning.cwpny.cn.gov.cn.cwpny.cn http://www.morning.ytnn.cn.gov.cn.ytnn.cn http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn http://www.morning.mkpkz.cn.gov.cn.mkpkz.cn http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn http://www.morning.zlff.cn.gov.cn.zlff.cn http://www.morning.ktskc.cn.gov.cn.ktskc.cn http://www.morning.dtcsp.cn.gov.cn.dtcsp.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.brwwr.cn.gov.cn.brwwr.cn http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn http://www.morning.frpm.cn.gov.cn.frpm.cn http://www.morning.ampingdu.com.gov.cn.ampingdu.com http://www.morning.drcnf.cn.gov.cn.drcnf.cn http://www.morning.daidudu.com.gov.cn.daidudu.com http://www.morning.lstmg.cn.gov.cn.lstmg.cn http://www.morning.pjrgb.cn.gov.cn.pjrgb.cn http://www.morning.hwtb.cn.gov.cn.hwtb.cn http://www.morning.zrgx.cn.gov.cn.zrgx.cn http://www.morning.spxsm.cn.gov.cn.spxsm.cn