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

山东聊城建设局网站汉南做网站

山东聊城建设局网站,汉南做网站,wordpress 浮动div,学做ps的软件的网站有哪些内容Go语言GIN框架安装与入门 文章目录 Go语言GIN框架安装与入门1. 创建配置环境2. 配置环境3. 下载最新版本Gin4. 编写第一个接口5. 静态页面和资源文件加载6. 各种传参方式6.1 URL传参6.2 路由形式传参6.3 前端给后端传递JSON格式6.4 表单形式传参 7. 路由和路由组8. 项目代码mai…Go语言GIN框架安装与入门 文章目录 Go语言GIN框架安装与入门1. 创建配置环境2. 配置环境3. 下载最新版本Gin4. 编写第一个接口5. 静态页面和资源文件加载6. 各种传参方式6.1 URL传参6.2 路由形式传参6.3 前端给后端传递JSON格式6.4 表单形式传参 7. 路由和路由组8. 项目代码main.go9. 总结 之前学习了一周的GO语言学会了GO语言基础现在尝试使用GO语言最火的框架GIN来写一些简单的接口。看了B站狂神说的GIN入门视频基本明白如何写接口了下面记录一下基本的步骤。 1. 创建配置环境 我们使用Goland创建第一个新的开发环境这里只要在windows下面安装好Go语言Goroot都能自动识别。 新的项目也就只有1个go.mod的文件用来表明项目中使用到的第三方库。 2. 配置环境 我们使用第三方库是需要从github下载的但是github会经常连不上所以我们就需要先配置第三方的代理地址。我们再Settings-Go-Go Modules-Environment下面配上代理地址。 GOPROXYhttps://goproxy.cn,direct3. 下载最新版本Gin 在IDE里面的Terminal下面安装Gin框架使用下面的命令安装Gin安装完成以后go.mod下面require就会自动添加依赖。 go get -u github.com/gin-gonic/gin4. 编写第一个接口 创建main.go文件然后编写以下代码这里定义了一个/hello的路由。 package mainimport github.com/gin-gonic/ginfunc main() {ginServer : gin.Default()ginServer.GET(/hello, func(context *gin.Context) {context.JSON(200, gin.H{msg: hello world})})ginServer.Run(:8888)}编译运行通过浏览器访问就可以输出JSON。 5. 静态页面和资源文件加载 使用下面代码加入项目下面的静态页面(HTML文件)以及动态资源(JS)。 // 加载静态页面ginSever.LoadHTMLGlob(templates/*)// 加载资源文件ginSever.Static(/static, ./static) 这是项目的资源文件列表 其中index.html文件如下 !DOCTYPE html html langen headmeta charsetUTF-8title我的第一个GO web页面/titlelink relstylesheet href/static/css/style.cssscript src/static/js/common.js/script /head bodyh1谢谢大家支持/h1获取后端的数据为 {{.msg}}form action/user/add methodpostpusername: input typetext nameusername/pppassword: input typetext namepassword/pbutton typesubmit 提 交 /button /form/body /html接着就可以响应一个页面给前端了。 // 响应一个页面给前端ginSever.GET(/index, func(context *gin.Context) {context.HTML(http.StatusOK, index.html, gin.H{msg: 这是go后台传递来的数据,})})6. 各种传参方式 6.1 URL传参 在后端获取URL传递来的参数。 // 传参方式//http://localhost:8082/user/info?userid123usernamedfaginSever.GET(/user/info, myHandler(), func(context *gin.Context) {// 取出中间件中的值usersession : context.MustGet(usersession).(string)log.Println(, usersession)userid : context.Query(userid)username : context.Query(username)context.JSON(http.StatusOK, gin.H{userid: userid,username: username,})}) 其中上面多加了一个中间键就是接口代码运行之前执行的代码myHandler的定义如下 // go自定义中间件 func myHandler() gin.HandlerFunc {return func(context *gin.Context) {// 设置值后续可以拿到context.Set(usersession, userid-1)context.Next() // 放行} }6.2 路由形式传参 // http://localhost:8082/user/info/123/dfaginSever.GET(/user/info/:userid/:username, func(context *gin.Context) {userid : context.Param(userid)username : context.Param(username)context.JSON(http.StatusOK, gin.H{userid: userid,username: username,})})6.3 前端给后端传递JSON格式 // 前端给后端传递jsonginSever.POST(/json, func(context *gin.Context) {// request.bodydata, _ : context.GetRawData()var m map[string]interface{}_ json.Unmarshal(data, m)context.JSON(http.StatusOK, m)})6.4 表单形式传参 ginSever.POST(/user/add, func(context *gin.Context) {username : context.PostForm(username)password : context.PostForm(password)context.JSON(http.StatusOK, gin.H{msg: ok,username: username,password: password,})})7. 路由和路由组 // 路由ginSever.GET(/test, func(context *gin.Context) {context.Redirect(http.StatusMovedPermanently, https://www.baidu.com)})// 404ginSever.NoRoute(func(context *gin.Context) {context.HTML(http.StatusNotFound, 404.html, nil)})// 路由组userGroup : ginSever.Group(/user){userGroup.GET(/add)userGroup.POST(/login)userGroup.POST(/logout)}orderGroup : ginSever.Group(/order){orderGroup.GET(/add)orderGroup.DELETE(delete)}8. 项目代码main.go package mainimport (encoding/jsongithub.com/gin-gonic/ginlognet/http )// go自定义中间件 func myHandler() gin.HandlerFunc {return func(context *gin.Context) {// 设置值后续可以拿到context.Set(usersession, userid-1)context.Next() // 放行} }func main() {// 创建一个服务ginSever : gin.Default()//ginSever.Use(favicon.New(./icon.png))// 加载静态页面ginSever.LoadHTMLGlob(templates/*)// 加载资源文件ginSever.Static(/static, ./static)//ginSever.GET(/hello, func(context *gin.Context) {// context.JSON(200, gin.H{msg: hello world})//})//ginSever.POST(/user, func(c *gin.Context) {// c.JSON(200, gin.H{msg: post,user})//})//ginSever.PUT(/user)//ginSever.DELETE(/user)// 响应一个页面给前端ginSever.GET(/index, func(context *gin.Context) {context.HTML(http.StatusOK, index.html, gin.H{msg: 这是go后台传递来的数据,})})// 传参方式//http://localhost:8082/user/info?userid123usernamedfaginSever.GET(/user/info, myHandler(), func(context *gin.Context) {// 取出中间件中的值usersession : context.MustGet(usersession).(string)log.Println(, usersession)userid : context.Query(userid)username : context.Query(username)context.JSON(http.StatusOK, gin.H{userid: userid,username: username,})})// http://localhost:8082/user/info/123/dfaginSever.GET(/user/info/:userid/:username, func(context *gin.Context) {userid : context.Param(userid)username : context.Param(username)context.JSON(http.StatusOK, gin.H{userid: userid,username: username,})})// 前端给后端传递jsonginSever.POST(/json, func(context *gin.Context) {// request.bodydata, _ : context.GetRawData()var m map[string]interface{}_ json.Unmarshal(data, m)context.JSON(http.StatusOK, m)})// 表单ginSever.POST(/user/add, func(context *gin.Context) {username : context.PostForm(username)password : context.PostForm(password)context.JSON(http.StatusOK, gin.H{msg: ok,username: username,password: password,})})// 路由ginSever.GET(/test, func(context *gin.Context) {context.Redirect(http.StatusMovedPermanently, https://www.baidu.com)})// 404ginSever.NoRoute(func(context *gin.Context) {context.HTML(http.StatusNotFound, 404.html, nil)})// 路由组userGroup : ginSever.Group(/user){userGroup.GET(/add)userGroup.POST(/login)userGroup.POST(/logout)}orderGroup : ginSever.Group(/order){orderGroup.GET(/add)orderGroup.DELETE(delete)}// 端口ginSever.Run(:8888)} 9. 总结 以上就是Gin入门的所有内容了大家觉得还有帮助欢迎点赞收藏哦。
http://www.yutouwan.com/news/489681/

相关文章:

  • seo网站页面优化区域网站设计
  • 深圳网站优化公司有哪些建筑设计网站
  • 专业网站建设86215怎样管理一个俄语网站
  • 普通人做电商赚钱吗外贸营销型网站策划中seo层面包括
  • 简述企业网站建设的主要步骤网站举报12321
  • 品牌好的佛山网站建设价格wordpress transient
  • 重庆市建筑工程信息官方网站免费ai设计logo网站
  • 娄底网站建设wyo8网站 水印
  • dw8 php做购物网站教程可信网站收费吗
  • 个人网站 icp中国工信备案查询网站
  • 在凡科建设网站的流程wordpress数据插件
  • 烟台网站建设策划方案沈阳网站建设哪家便宜
  • 网站商城建设如何避免内部竞争衡水网页网站建设
  • 网站后台上传表格摄影网站排行榜前十名
  • o2o与网站建设论文制作表情包的软件app
  • 网站空间备案流程公司网站建设怎么做
  • 成都开网站网站建设网络科技公司加盟
  • 技术社区网站开发例子门户网站cms
  • 邹城外贸网站建设浙江乐清新闻今天
  • 如皋网站开发公司企业网站改版seo
  • 宣传网站建设方案模板wordpress 打不开 怎么办
  • 网站邮件设置方法easy ssl wordpress
  • 做网站的费用属于什么费用做视频网站投入多少
  • 网站图片上怎么做弹幕效果wordpress grace主题
  • 在线下载免费软件的网站可以免费建设网站吗
  • 厦门 外贸公司做网站子域名大全查询
  • wordpress英文站更新通知目录百度指数分析大数据
  • 怎么做钓鱼网站宁波公司注册流程
  • 学习建设网站需要多久定制网站开发公司排名
  • 竭诚网络网站建设怎么修改网站首页logo