go语言封装教程 go语言 flag

GoLang -- Gin框架? 何为框架:
框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候 , 脱离了框架,一些开发者都不会写程序了 。成长总不会一蹴而就 , 从写出程序获取成就感,再到精通框架 , 快速构造应用,当这些方面都得心应手的时候,可以尝试改造一些框架,或是自己创造一个 。
Gin是一个golang的微框架 , 封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本 。具有快速灵活,容错方便等特点 。其实对于golang而言,web框架的依赖要远比Python , Java之类的要小 。自身的net/http足够简单,性能也非常不错 。框架更像是一些常用函数或者工具的集合 。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范 。
(1)首先需要安装 , 安装比较简单,使用go get即可
go getgithub.com/gin-gonic/gin
如果安装失败,直接去Github clone下来,放置到对应的目录即可 。
(2)代码中使用:
下面是一个使用Gin的简单例子:
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
router.Run(":8080") // listen and serve on 0.0.0.0:8080
}
简单几行代码,就能实现一个web服务 。使用gin的Default方法创建一个路由handler 。然后通过HTTP方法绑定路由规则和路由函数 。不同于net/http库的路由函数,gin进行了封装,把request和response都封装到gin.Context的上下文环境 。最后是启动路由的Run方法监听端口 。麻雀虽小,五脏俱全 。当然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法 。
Gin可以很方便的支持各种HTTP请求方法以及返回各种类型的数据,详情可以前往查看 。
2.1 匹配参数
我们可以使用Gin框架快速的匹配参数,如下代码所示:
冒号:加上一个参数名组成路由参数 。可以使用c.Param的方法读取其值 。当然这个值是字串string 。诸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不会被匹配 。
浏览器输入以下测试:
返回结果为:
其中c.String是gin.Context下提供的方法,用来返回字符串 。
其中c.Json是gin.Context下提供的方法,用来返回Json 。
下面我们使用以下gin提供的Group函数,方便的为不同的API进行分类 。
我们创建了一个gin的默认路由,并为其分配了一个组 v1,监听hello请求并将其路由到视图函数HelloPage,最后绑定到 0.0.0.0:8000
C.JSON是Gin实现的返回json数据的内置方法,包含了2个参数,状态码和返回的内容 。http.StatusOK代表返回状态码为200,正文为{"message": “welcome"} 。
注:Gin还包含更多的返回方法如c.String, c.HTML, c.XML等,请自行了解 。可以方便的返回HTML数据
我们在之前的组v1路由下新定义一个路由:
下面我们访问
可以看到,通过c.Param(“key”)方法 , Gin成功捕获了url请求路径中的参数 。同理,gin也可以捕获常规参数,如下代码所示:
在浏览器输入以下代码:
通过c.Query(“key”)可以成功接收到url参数,c.DefaultQuery在参数不存在的情况下,会由其默认值代替 。
我们还可以为Gin定义一些默认路由:
这时候,我们访问一个不存在的页面:
返回如下所示:
下面我们测试在Gin里面使用Post
在测试端输入:
附带发送的数据 , 测试即可 。记住需要使用POST方法.
继续修改,将PostHandler的函数修改如下
测试工具输入:
发送的内容输入:
返回结果如下:
备注:此处需要指定Content-Type为application/x-www-form-urlencoded,否则识别不出来 。
一定要选择对应的PUT或者DELETE方法 。
Gin框架快速的创建路由
能够方便的创建分组
支持url正则表达式
支持参数查找(c.Param c.Query c.PostForm)
请求方法精准匹配
支持404处理
快速的返回给客户端数据,常用的c.String c.JSON c.Data
GO语言入门,有什么好的教程?。?/h2>可以学习黑马程序员go语言封装教程的这个教程
20小时快速入门go语言:网页链接
go语言的优势
可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了 。
【go语言封装教程 go语言 flag】静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高 。
语言层面支持并发,这个就是Go最大的特色,天生的支持并发 。Go就是基因里面支持的并发,可以充分的利用多核 , 很容易的使用并发 。
内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC(内存垃圾回收机制)不算完美 , 但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC 。
简单易学,Go语言的作者都有C的基因 , 那么Go自然而然就有了C的基因 , 那么Go关键字是25个,但是表达能力很强大,几乎支持大多数go语言封装教程你在其他语言见过的特性:继承、重载、对象等 。
丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大 。
内置强大的工具,Go语言里面内置了很多工具链 , 最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难 。
跨平台编译 , 如果你写的Go代码不包含cgo,那么就可以做到window系统编译linux的应用,如何做到的呢go语言封装教程?Go引用了plan9的代码,这就是不依赖系统的信息 。
内嵌C支持,Go里面也可以直接包含C代码,利用现有的丰富的C库 。
golang原生http web进行简约封装一般我们用Golang原生写Web时,一般这样写
如果需要特定的GET,POST,PUT,DELETE处理. 我们需要这样写.
对以上方法操作进行了封装.
不过最后还是推荐使用httprouter, 大名顶顶的Gin Web框架就是使用这个的. 自己写的,纯属学习.
go语言对gorm不固定条件查询封装在写sql语句时,where的条件主要是key=1 and key2=2 或者 key=1 or key2=2 这种形式[还有 and与or 混合] 。
认真分析会发现条件有 4部分 组成-- 字段名、操作符、查询值、与前一个条件的关系[and,or] ,这样就很容易实现了 。下面就是一个说明,为了简化,其中会默认省略一些特征 。
启动项目
访问测试地址:
带分页的地址:
关于go语言封装教程和go语言 flag的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读