
正文
go语言web框架有哪些 go语言web框架性能比较
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
go语言的webengine叫什么
Java教程
Linux入门
更多
首页

Go语言WEB框架(Gin)详解
在 Go语言开发的 Web 框架中,有两款著名 Web 框架分别是 Martini 和 Gin,两款 Web 框架相比较的话,Gin 自己说它比 Martini 要强很多。
Gin 是 Go语言写的一个 web 框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 json。总之在 Go语言开发领域是一款值得好好研究的 Web 框架,开源网址:
首先下载安装 gin 包:
go get -u github.com/gin-gonic/gin
一个简单的例子:
package main
import "github.com/gin-gonic/gin"
func main() {
//Default返回一个默认的路由引擎
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
//输出json结果给调用方
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
编译运行程序,打开浏览器,访问页面显示:
{"message":"pong"}
gin 的功能不只是简单输出 Json 数据。它是一个轻量级的 WEB 框架,支持 RestFull 风格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上传,分组路由,Multipart/Urlencoded FORM,以及支持 JsonP,参数处理等等功能,这些都和 WEB 紧密相关,通过提供这些功能,使开发人员更方便地处理 WEB 业务。
Gin 实际应用
接下来使用 Gin 作为框架来搭建一个拥有静态资源站点,动态 WEB 站点,以及 RESTFull API 接口站点(可专门作为手机 APP 应用提供服务使用)组成的,亦可根据情况分拆这套系统,每种功能独立出来单独提供服务。
下面按照一套系统但采用分站点来说明,首先是整个系统的目录结构,website 目录下面 static 是资源类文件,为静态资源站点专用;photo 目录是 UGC 上传图片目录,tpl 是动态站点的模板。
当然这个目录结构是一种约定,可以根据情况来修改。整个项目已经开源,可以访问来详细了解:具体每个站点的功能怎么实现呢?请看下面有关每个功能的讲述:
静态资源站点
一般网站开发中,我们会考虑把 js,css,以及资源图片放在一起,作为静态站点部署在 CDN,提升响应速度。采用 Gin 实现起来非常简单,当然也可以使用 net/http 包轻松实现,但使用 Gin 会更方便。
不管怎么样,使用 Go 开发,我们可以不用花太多时间在 WEB 服务环境搭建上,程序启动就直接可以提供 WEB 服务了。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 静态资源加载,本例为css,js以及资源图片
router.StaticFS("/public", http.Dir("D:/goproject/src/github.com/ffhelicopter/tmm/website/static"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:80
router.Run(":80")
}
首先需要是生成一个 Engine,这是 gin 的核心,默认带有 Logger 和 Recovery 两个中间件。
router := gin.Default()
StaticFile 是加载单个文件,而 StaticFS 是加载一个完整的目录资源:
func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes
func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes
这些目录下资源是可以随时更新,而不用重新启动程序。现在编译运行程序,静态站点就可以正常访问了。
相关问答
Q1: go语言有没有类似tp5框架
有,go语言有框架,例如:Beego(Go语言下开源的,高性能Web框架 )、Buffalo(Go语言下快速Web开发框架)、Echo、Gin、Iris、Revel(高生产率,全栈Go语言的Web框架)等。
Q2: web前端框架有哪些?
什么是Web前端开发?
前端开发是创建web页面或app等前端界面呈现给用户的过程。通过html、css、js以及衍生出来的各种技术、框架、解决方案来实现互联网产品的用户交互界面。
Web前端框架有:Bootstrap 框架、React 框架、Vue 框架、Angular 框架、Foundation 框架、TypeScript 框架。
1、Bootstrap 框架
Bootstrap 是当今可用的前端框架中最受欢迎的,它具有直观,时尚的界面而且功能强大可以更快更轻松地实现 web 开发而且不需要捆绑。附件就可以使用许多第三方插件,大多数浏览器都支持它,而且它提供了比其他前端框架更多的组合资源。
2、React 框架
React 框架引入了许多自定义的(在创建时)前端 Web 开发的方法。要使用 React,首先需要掌握组件的体系结构,JSX 和单向数据流等,React 框架的出现促使开发了大量额外工具用来实现高度灵活性。虽然灵活性是其主要优势,但 React 因其灵活性也存在一些问题。比如在使用 React 时会面临选择的问题,而且它没有可靠的开发工作流程。我们必须使用 React 构建自己的工作流程。这比使用其他 JS 框架更困难,因为构建到框架中需要大量的开发工具。
3、Vue 框架
Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
4、Angular 框架
Angular.js 通常被称为 MVW(模型 – 视图 – 随意)框架,其中包括:快速代码生成,轻松测试任何应用程序部分和双向数据绑定(后端的更改会立即反映在 UI 上)。自发布以来,它成为开发的最常用的 JS 框架。对于基于企业的应用程序或具有高标准代码可读性的严格编程环境,Angular-s 都是更好的选择。
5、Foundation 框架
Foundation 是由网页设计公司 Zurb 创建的,是一个非常先进的企业级前端框架,非常适合开发灵活,响应迅速的网站。但是使用它也相当复杂,所以不适合刚入门的学习者,这个功能丰富的框架支持 GPU 加速,可实现流畅,闪电般快速的动画,Fastclick.js 可在移动设备上快速渲染。它在 Sass 预处理器上运行,并包含 Foundation 开发的数据交换属性,该属性允许您为移动设备加载轻量级 HTML 部分,为较大屏幕加载“较重”HTML 部分。
6、TypeScript 框架
TypeScript 是由微软开发的自由和开源的编程语言,JavaScript 类型的超集,它可以编译成纯 JavaScript。TypeScript 可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。
Q3: Go语言做Web应用开发的框架,哪一个更适合入门
可以先直接使用go自带的http server 框架,这个框架涵盖了绝大多数的功能,比如request response 的基本封装,简单的路由管理,文件上传处理。
如果发现Go 自带的框架解决不了问题,可以引入相应的第三方组件,比如ORM可以采用中国人写的gorm 比如web 的session 管理可以使用gorilla/session
当然你也可以直接上大一统的框架比如你提到的beego 还有大名鼎鼎的martini 。不过不推荐,因为这样的大框架和Go 语言本身的模块设计有冲突。
实际开发建议用vscode 加Go 插件来做IDE,基本包含了其他成熟IDE的所有功能,而且还自带强大的debug 功能。其他IDE debug 用起来非常麻烦比如idea 和liteIDE。题主也可以自己试下。
Q4: Golang web 框架对比
由于 golang 提供了完善的net/http标准库,基于该标准库实现一个web框架的难度相比其他语言低了不少,所以go web框架简直就是百花齐放。从老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且还有一些类似于 chi 这种router。个人一般小项目,尤其是中间件需要暴露一些http接口的,基本就使用chi即可。
本次测试主要是gin iris echo 这三个框架。侧重在于高性能,从并发和json序列化和反序列化两个方面来测评,毕竟后台项目侧重的也就是这两个方面。
为了选择符合重IO的框架,现设定如下场景的demo,demo的具体要求如下:
gin:
iris:
echo:
由于要测试5种body样本,4种场景,4个框架,因此把重点数据筛选出来(吞吐量、错误率和99%Line,重要性依次递减),结果都绘制了图形,方便比对查看。
综合以上各个测试结果可以看出,gin以及iris都是非常优秀的框架,gin的优势比其他稍微大点,iris次之,而echo相应差一点。
本次测试只是简单测试了一下3个框架的并发和json相关。对比结果,不包括生态和工具的完善度等等。如果测试有什么不完善的地方,欢迎交流。
另外欢迎大家试用和star另外一个web框架 baa ,为了避嫌我没有贴出baa的数据,性能测试处于gin之后和iris之间。
Q5: Web前端开发必备的开源框架有哪些
今天小编要跟大家分享的文章是关于Web前端开发必备的开源框架有哪些。大多数人想到Web开发时,通常会想到HTML或JavaScript,往往忽略了CSS,根据Wikipedia的说法,CSS既是网页中最重要也是最常被遗忘的部分之一,尽管它是万维网的三大基础技术之一。
今天就和大家分享9个流行的、强大的前端开源框架,帮助你轻松构建漂亮的网站前端。下面来和小编一起看一看吧!
1、Bootstrap
Bootstrap无疑是最流行的CSS框架,它是最早的Web前端框架,由Twitter开发。Bootstrap还提供了许多示例来帮助你入门。
使用Bootstrap,你可以将不同的组件和布局组合在一起,从而创建有趣的页面设计。它还提供了大量详细的文档。目前在Github上已经有1100多个贡献者,19000多个提交。(Github地址:)
2、PatternFly
PatternFly是Red
Hat的开源CSS框架,和Bootstrap不同的是,Bootstrap是为那些想要创建漂亮网站的人而设计的,而PatternFly主要专注于企业应用程序开发人员,提供诸如条形图、图表、导航之类的组件,实际上Red
Hat就是使用它创建了OpenShift。
除了静态HTML,PatternFly还支持ReactJS框架,这是Facebook开发的流行JavaScript框架。PatternFly具有许多适用于企业级应用程序的高级组件,如条形图,图表,模式和布局。
PatternFly在GitHub上一共有1,050多个提交和44个贡献者。(Github地址:)
3、MaterialComponentsfortheweb
MaterialComponentsfortheweb(MDCWeb),是谷歌专为Web设计的全新前端框架。MDC
Web可帮助开发人员执行Material
Design,组件由谷歌的核心工程师团队和UX设计人员开发。这些组件可以建立可靠的开发工作流程,以构建美观且功能强大的Web项目。
MDC
Web在Github上共有5700多个提交和349个贡献者。(Github地址:)
4、Pure
Bootstrap,Patternfly和MDC
Web是功能非常强大的CSS框架,但它们可能非常繁琐和复杂。如果你想要一个轻量级的CSS框架,可以尝试Pure.css,它本身更接近于CSS编程,但又可以帮助你构建一个不错的网页。Pure是具有最小占用空间的轻量级CSS框架,它由Yahoo开发,根据BSD许可是开源的。
Pure在Github上共有565多个提交和59个贡献者。(Github地址:)
5、Foundation
Foundation声称是世界上最先进的响应式前端框架。它提供了用于构建专业网站的高级功能和教程。许多公司,组织都使用该框架,并且该框架具有大量可用的文档。
Foundation在Github上有将近17000个提交和1000个贡献者。(Github地址:)
6、Bulma
Bulma是一个基于Flexbox的开源框架,可根据MIT许可证开源。Bulma是一个非常轻量级的框架,因为它只需要一个CSS文件。Bulma拥有简洁明了的文档,可轻松选择你想要的主题。它还具有许多Web组件,你可以在设计中使用它们。
Bulma在Github上有1400多个提交和300个贡献者。(Github地址:)
7、Skeleton
如果说还有什么框架比Pure更加轻量级,那一定是Skeleton。Skeleton库只有大约400行,并且该框架仅提供一些基本的CSS框架组件。尽管如此,Skeleton还是提供了详细的文档来帮助你快速上手。
Skeleton在Github上共有167个提交和22个贡献者,但它不是最活跃的项目,它最新一次的更新是在2014年。(Github地址:)
8、Materialize
Materialize是一个基于Material
Design风格的一个现代化的响应式前端框架,解决了最繁重的工作,结合你的自定义组件,为你提供默认的样式。Materialize的文档页面非常全面,并且很容易遵循。其组件页面包括按钮,卡片,导航等。
Materialize在Github上共有3800多个提交和250个贡献者。(Github地址:)
9、Bootflat
Bootflat是从Twitter的Bootstrap派生的开源CSS框架。与Bootstrap相比,Bootflat更简单,并且更加轻量级。Bootflat的文档似乎几乎受到了IKEA的启发,大部分都是图像,没有太多的文字。
Bootflat是在MIT许可证下开源的,在Github上有159个提交和8个贡献者。(Github地址:)
以上就是小编今天为大家分享的关于Web前端开发必备的开源框架有哪些的文章,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助,想要了解更多web前端知识记得关注北大青鸟web培训官网。最后祝愿小伙伴们工作顺利!
开源最前线(ID:OpenSourceTop)猿妹编译
链接:#/article/20/4/open-source-css-frameworks
go语言web框架有哪些的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言web框架性能比较、go语言web框架有哪些的信息别忘了在本站进行查找喔。





