go语言的webengine叫什么Java教程
Linux入门
更多
首页
?
Go语言WEB框架(Gin)详解
在 Go语言开发的 Web 框架中,有两款著名 Web 框架分别是 Martini 和 Gin,两款 Web 框架相比较的话,Gin 自己说它比 Martini 要强很多 。
Gin 是 Go语言写的一个 web 框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 json 。总之在 Go语言开发领域是一款值得好好研究的 Web 框架,开源网址:
【go语言web开发项目 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
这些目录下资源是可以随时更新 , 而不用重新启动程序 。现在编译运行程序,静态站点就可以正常访问了 。
go语言web框架beego安装(go mod方式)go语言web框架beego安装(go mod方式)_不忘初心go语言web开发项目,方得始终-CSDN博客
重要:将bee命令放到GOROOT/bin目录下go语言web开发项目 , 这步很关键
cp bee /usr/local/go/bin/
注go语言web开发项目:或者可以将GOPATH/bin设置为环境变量
echo ’export PATH="PATH"'~/.bashrc
source ~/.bashrc
router路由下方法名要大写,访问权限
wq保存
生效环境变量:source /etc/profile
go build -o abc.exe可指定编译后的文件名
Golang常用环境变量说明与设置详解
环境变量GOBIN表示我们开发程序编译后二进制命令的安装目录 。
当我们使用go install命令编译和打包应用程序时go语言web开发项目,该命令会将编译后二进制程序打包GOBIN目录,一般我们将GOBIN设置为GOPATH/bin目录 。
export GOBIN=$GOPATH/bin
Go get包管理mod
windows下默认项目路径在go安装目录的src下(beego)
Go语言做Web应用开发的框架,哪一个更适合入门可以先直接使用go自带的http server 框架,这个框架涵盖了绝大多数的功能,比如requestresponse 的基本封装,简单的路由管理,文件上传处理 。
如果发现Go 自带的框架解决不了问题 , 可以引入相应的第三方组件,比如ORM可以采用中国人写的gorm 比如web 的session 管理可以使用gorilla/session
当然你也可以直接上大一统的框架比如你提到的beego 还有大名鼎鼎的martini。不过不推荐,因为这样的大框架和Go 语言本身的模块设计有冲突 。
实际开发建议用vscode 加Go 插件来做IDE , 基本包含了其他成熟IDE的所有功能,而且还自带强大的debug 功能 。其他IDEdebug 用起来非常麻烦比如idea 和liteIDE 。题主也可以自己试下 。
golang适合做web开发吗适合 。框架足够成熟go语言web开发项目了 A Survey of 5 Go Web Frameworks
小型项目go语言web开发项目你甚至不用框架go语言web开发项目,用net/http http - The Go Programming Language
常用库也成熟go语言web开发项目了 Top - Go Search
golanggo语言web开发项目的web后端即使不concurrent也比php , ruby,python快很多很多
golang里用concurrent真的非常方便 , 非常非常快,超大web项目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
对于文件改动重新编译其实并不是大问题 , 看pilu/fresh · GitHub,其实你自己写shell脚本(也可以直接用go写 , 因为它本身就是系统语言)监控文件系统改动然后自动重新build,即使是C/C的项目这也不是大问题,人们不用C/C写web是因为它们不是写web app的最佳选择
golang写的代码编译通过后,要比scripting language鲁棒,因为go compiler强制一些最佳实践
Go语言的开源项目1.Docker项目
网址为。
介绍go语言web开发项目:Docker是一种操作系统层面的虚拟化技术go语言web开发项目,可以在操作系统和应用程序之间进行隔离go语言web开发项目,也可以称之为容器 。Docker可以在一台物理服务器上快速运行一个或多个实例 。例如go语言web开发项目 , 启动一个Cent OS操作系统 , 并在其内部命令行执行指令后结束,整个过程就像自己在操作系统一样高效 。
2.golang项目
网址为。
介绍:Go语言的早期源码使用C语言和汇编语言写成 。从Go 1.5版本自举后,完全使用Go语言自身进行编写 。Go语言的源码对go语言web开发项目了解Go语言的底层调度有极大的参考意义 , 建议希望对Go语言有深入了解的读者读一读 。
3.Kubernetes项目
网址为。
介绍:Google公司开发的构建于Docker之上的容器调度服务,用户可以通过Kubernetes集群进行云端容器集群管理 。
4.etcd项目
网址为。
介绍:一款分布式、可靠的KV存储系统,可以快速进行云配置 。
5.beego项目
网址为。
介绍:beego是一个类似Python的Tornado框架,采用了RESTFul的设计思路,使用Go语言编写的一个极轻量级、高可伸缩性和高性能的Web应用框架 。
6.martini项目
网址为。
介绍:一款快速构建模块化的Web应用的Web框架 。
7.codis项目
网址为Labs/codis 。
介绍:国产的优秀分布式Redis解决方案 。
8.delve项目
网址为。
介绍:Go语言强大的调试器,被很多集成环境和编辑器整合 。
golang 有哪些比较稳定的 web 开发框架第一个:Beego框架
Beego框架是astaxiego语言web开发项目的GOWeb开发的开源框架 。Beego框架最大的特点是由八个大的基础模块组成go语言web开发项目,八大基础模块的特点是可以根据自己的需要进行引入go语言web开发项目,模块相互独立,模块之间耦合性低 。
相应的Beego的缺点就是全部使用时比较臃肿,通过bee工具来构建项目时 , 直接生成项目目录和耦合关系 , 从而会导致在项目开发过程中受制性较大 。
第二个:Gin框架
Gin是一个GOlang的微框架,封装比较优雅 , API友好,源码注释比较明确,已经发布了1.0版本;具有快速灵活、容错方便等特点,其实对于golang而言,web框架的依赖远比Python、Java更小 。
目前在很多使用golang的中小型公司中进行业务开发,使用Gin框架的很多 , 大家如果想使用golang进行熟练Web开发,可以多关注一下这个框架 。
第三个:Iris框架
Iris框架在其官方网站上被描述为GO开发中最快的Web框架 , 并给出了多框架和多语言之前的性能对比 。目前在github上,Iris框架已经收获了14433个star和1493个fork , 可见是非常受欢迎的 。
在实际开发中 , Iris框架与Gin框架的学习曲线几乎相同,所以掌握了Gin就可以轻松掌握Iris框架 。
第四个:Echo框架
也是golang的微型Web框架,其具备快速HTTP路由器、支持扩展中间件 , 同时还支持静态文件服务、Websocket以及支持制定绑定函数 , 制定相应渲染函数,并允许使用任意的HTML模版引擎 。
go语言web开发项目的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于go语言做web有优势吗?、go语言web开发项目的信息别忘了在本站进行查找喔 。
推荐阅读
- 湖南旅游官方公众号关注,湖南旅游十大景点排名
- erp系统完工可以撤回吗,erp系统可以做账吗
- 钉钉电脑如何退出直播课堂,电脑如何退出钉钉直播全屏
- c语言写一元一次函数图像 c语言一元二次函数
- redis不设置生命周期,redis 生命周期
- sap物料主数据制造商,sap物料主数据管理
- 可乐环形针工具直播,可乐造型
- cpu口红是什么牌子,com口红
- word段落间距怎么调整,word段落间距调整无效