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

专业网站建设软件开发长宁区网站建设网站制

专业网站建设软件开发,长宁区网站建设网站制,深圳企业网站建设与设计制作,做一借款撮合网站每天都会分享Go的知识#xff0c;喜欢的朋友关注一下。每天的学习分成两部分基础#xff08;必要的#xff0c;基础不牢地动山摇#xff09;#xff0c;另一部分是Go的一些框架知识#xff08;会不定时发布#xff0c;因为小Wei也是一名搬砖人#xff09;。但是可以保证…每天都会分享Go的知识喜欢的朋友关注一下。每天的学习分成两部分基础必要的基础不牢地动山摇另一部分是Go的一些框架知识会不定时发布因为小Wei也是一名搬砖人。但是可以保证基础部分会每天更新加强对基础部分的了解与深入会对这门语言有不一样的了解至于框架或者其他类型的知识 时间充裕的情况下会发表一些自己的观点与心得 希望大家多多点评。不多闲聊了今天给大家带来的是Gin初步带大家了解一些Gin的安装、路由、如何访问静态资源等等一、Gin的安装 根据文档进行安装https://learnku.com/docs/gin-gonic/1.7/quickstart/11354go get -u github.com/gin-gonic/gin //go get 的 作用与 git 一样使用上面的命令后会出现一些报错 遇到 go get 报错不要慌解决办法 1开启go modules功能命令行输入go env -w GO111MODULEon 2在该项目目录下初始化Go moudle运行下面命令go mod init xxx //xxx代表文件夹名 重新go get 就好了在test 文件下会出现go.mod和go.sum两个文件以及外部库 会有test结尾的Modules包如果没有 请配置一下 idea编辑器 Goland为例第一 Go模块中的环境 与 go env 中的一致第二Gopath中第三 Goroot和大家在这里说一下Gin这个框架就是一个包儿熟悉其它语言的同学看到这个可能不习惯其他的都需要手动创建 这个main.go就是手动创建的今天只是初步进行了解 就不过多去讲解什么了到这里的话框架就算搭建完了 感兴趣的同学可以输出一下Hello word 二、Restful Api 从其它语言转go的同学应该不陌生这个,刚开始接触的同学也不要慌张所以就长或短说做个对比 /**其他语言风格get /userpost /create_userpost /update_userpost /delete_userGin restfulapiget /userpost /userput /userdelete /user*///访问地址处理请求ginServer.GET(/hello, func(context *gin.Context) {context.JSON(200, gin.H{msg: hello,word})})ginServer.POST(/user, func(context *gin.Context) {context.JSON(200, gin.H{msg: post,user})})ginServer.PUT(userPut, func(context *gin.Context) {context.JSON(200, gin.H{msg: put,user})})ginServer.DELETE(userDelete, func(context *gin.Context) {context.JSON(200, gin.H{msg: delete,user})})举个例子 简单说下格式package mainimport (github.com/gin-gonic/gin ) /**简单使用流程 1、引入包2、创建服务3、定义端口4、路由请求 */ func main() {ginServer : gin.Default() //创建一个服务//restful apiginServer.GET(/user, func(context *gin.Context) {//json格式 context.JSON(200, gin.H{msg: 这是一个Get请求})})//创建端口/**ginServer.Run(8081) 这是一个错误的写法运行后会报错listen tcp: address 8081: missing port in address*/ginServer.Run(:8081) }三、如何响应页面给前端web/**响应页面给前端web加载静态页面*/ginServer.LoadHTMLGlob(templates/*) //全局加载//ginServer.LoadHTMLFiles(templates/index.html) 加载指定文件//加载资源文件ginServer.Static(/static, ./static)ginServer.GET(/index, func(context *gin.Context) {//context.JSON() 返回jsoncontext.HTML(http.StatusOK, index.html, gin.H{msg: 这是后台数据,}) //返回页面})四、如何获取请求参数//获取请求参数//传统 url?useridxxxusernamexxxginServer.GET(/user/info, myHandler(), func(context *gin.Context) {//取出中间件值userSession : context.MustGet(userSession).(string)//打印log.Println(userSession, userSession)userid : context.Query(userid)username : context.Query(username)context.JSON(http.StatusOK, gin.H{userid: userid,username: username,})})// restful url/user/info/xx/xxginServer.GET(/user/infors/:userid/:username, func(context *gin.Context) {userid : context.Param(userid)username : context.Param(username)context.JSON(http.StatusOK, gin.H{userid: userid,username: username,})})五、如何处理序列化//序列化 前端给后端传jsonginServer.POST(/json, func(context *gin.Context) {//request.bodyb, _ : context.GetRawData()var m map[string]interface{}//包装为json数据 []byte_ json.Unmarshal(b, m)context.JSON(http.StatusOK, m)})六、如何接收表单值 //表单ginServer.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,})})三、四、六的前端页面七、路由重定向、404和路由组 //路由ginServer.GET(/tests, func(context *gin.Context) {//重定向context.Redirect(http.StatusMovedPermanently, /index)})//404 notRouteginServer.NoRoute(func(context *gin.Context) {//404context.HTML(http.StatusOK, index.html, nil)})//路由组userGroup : ginServer.Group(/user){userGroup.GET(/add)userGroup.POST(/login)userGroup.DELETE(delete)}八、中间件的使用拦截器自行打印 仅提供思路 package mainimport (github.com/gin-gonic/ginlog ) // 自定义中间件 预处理 func myHandler() gin.HandlerFunc {return func(context *gin.Context) {context.Set(userSession, userid)//if(value){ 中间件判断////}context.Next() //通过放行context.Abort() //拦截} } func main() {ginServer : gin.Default() //创建一个服务//restful apiginServer.GET(/user, myHandler() ,func(context *gin.Context) {//取出中间件值userSession : context.MustGet(userSession).(string)//打印log.Println(userSession, userSession)//json 格式context.JSON(200, gin.H{msg: 这是一个Get请求})})//创建端口就ginServer.Run(:8083) }九、简单观察Go的多线程观察一下Go的速度package mainimport (fmttime )func main() {//go的多线程-协程go printGo()for i : 0; i 1000; i {fmt.Println(main, i)}time.Sleep(time.Second * 3) //主线程快结束时休息三秒 }func printGo() {for i : 0; i 1000; i {fmt.Println(printGo, i)} }Gin的初步了解有其他语言基础的同学了解玩这些就可以做一些简单的web小网站了 后续还会有其他知识的补充
http://www.hkea.cn/news/14469775/

相关文章:

  • 斗图在线制作生成器东莞seo搜索
  • 婴儿网站模板网站建设教程学习
  • 北京网站建设备案openssl 3漏洞补丁
  • 做网站如何买量深圳建设工程价格信息网站
  • 集团网站设计案例网站开发工程师岗位要求
  • 易语言网站开发网站空间一般有多大
  • 网站运营建设的培训老鹰网营销型网站建设
  • 番禺网站公司seo方法培训
  • 英国T4学生签证 可以做网站吗天津市精神文明建设网站
  • 手机网站建设事项wordpress手机版下载
  • php美食网站开发的意义提取卡密网站怎么做
  • 可以做打赏视频的网站wordpress的tag404页面
  • 陕西餐饮加盟网站建设wordpress的极限
  • 网站建设合同 含维护费网站建设灰色关键词
  • 手机怎么制作网站教程步骤免费免费建站
  • 餐饮公司 网站建设导航网址网站怎么做
  • 做的最少的网站电子商务网站推广计划书
  • 提供网站建设的公司wordpress paypal插件
  • 邵阳网站建设多少钱贵州建设厅网站报名系统
  • 服装网站建设策划方案网站后台模板html5
  • dede网站不能够生成wordpress简书主题安装
  • 徐州市建设局招投标网站全国建设工程招标信息网站
  • 法律网站的建设流程亚马逊雨林资料
  • 网站营销话术特乐网站建设
  • 学校网站建设评审会议通知wordpress 漏洞修复
  • 滴滴网站建设流程图h5做网站
  • 网站的分页效果怎么做万能浏览器安卓版下载
  • 建设银行个人网站显示不了网站建设实例
  • 湖北田源建设工程有限公司网站wordpress 网站加密插件
  • 网站域没到期不能续费吗帝国建站程序