golang做web网站,对比php python java nodejs等有什么优势我的思路是这样 , 因为自己起点低,还精力有限,又想弯道追上技术潮流,所以着眼未来,选择Golang 。既然敢叫云技术语言,那么它的性能自然是适合未来发展的,像facebook这样的大公司貌似也挺重视它…最最主要的,赌它未来能全栈应用,期待可以直接上手用Go开发Android和iOS应用的那一天~
框架选择上吗,初级选手建议Revel(开源案例比较多,老框架、Go官方给予了该框架很高的评价) , 其实Go语言众多框架性能都很卓越,水平高的不用框架直接玩更爽 。顺嘴吐一下槽,Go语言框架之多如少女脸上的青春痘~
对了,选择Go语言的好处是,各个社区学习互助氛围比较好,你去哪个网上社区去请教问题,都会有人热情解答~
go语言的webengine叫什么【go语言web网站 go语言web开发教程】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()
推荐阅读
- mysql导出数据库csv文件怎么打开,mysql导出csv中文乱码
- 夏普电视屏幕漏光怎么修,夏普电视液晶屏有黑影怎么办
- redis余额,redis剩余存活时间
- java面向对象登录代码 java面向对象登录代码是什么
- mysql判断索引删除,mysql判断索引是否存在
- 柳岩竞技体育游戏教案,竞技体育 游戏
- thinkphp移动接口,thinkphp api接口搭建
- 忍三服务器,忍三服务器崩溃
- c语言中有swap函数吗 c语言的swap函数