Golang学习-第三篇 认识Web框架

盏茶_作酒 · · 5962 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。


序言

作为一个Web开发人员,相信对框架并不陌生。那么什么是Web框架呢?我们学习的语言中有哪些框架呢?带着这两个疑问,来走进我们今天要写的内容。

Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署
Golang学习-第二篇 搭建一个简单的Go Web服务器

正文

什么是Web框架?

Web application framework,Web应用框架(Web框架),用来支持动态网站、网络应用程序及网络服务的开发。
Web应用框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等,可提升代码的可再用性。

认识Go语言中的框架

Web框架,特别是一个好的Web框架,让我们在开发项目的过程中会减少很多的麻烦。不过,作为一个Golang新手,记得一定不能被框架给束缚住,Go的基础一定要学好。当然这不是我们今天讨论的对象。
Golang中的Web框架有很多,对于性能对比,这里我不作特别的说明,如果各位有兴趣的话可以谷歌一下某些大牛的测试。如果自己有能力也可以自己做一个测试并写出一份测试报告。今天我们这里就简单介绍几个目前大家用的比较多的框架。
beego
Martini
gin
revel
作为一名Golang新手,本人用的第一个框架就是beego,选择她的主要原因就是简单、易上手、文档全面。下面我们就简单的来说一下beego框架。

beego框架的简介及搭建

beego简介

beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架

beego的架构、执行逻辑

beego架构图
beego架构图
beego执行逻辑图
beego执行逻辑图

beego框架的特性

简单化

RESTful 支持、MVC 模型,可以使用 bee 工具快速地开发应用,包括监控代码修改进行热编译、自动化测试代码以及自动化打包部署。

智能化

支持智能路由、智能监控,可以监控 QPS、内存消耗、CPU 使用,以及 goroutine 的运行状况,让您的线上应用尽在掌握。

模块化

beego 内置了强大的模块,包括 Session、缓存操作、日志记录、配置解析、性能监控、上下文操作、ORM 模块、请求模拟等强大的模块,足以支撑你任何的应用。

高性能

beego 采用了 Go 原生的 http 包来处理请求,goroutine 的并发效率足以应付大流量的 Web 应用和 API 应用,目前已经应用于大量高并发的产品中。

beego的安装

go get github.com/astaxie/beego

bee工具安装

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。
go get github.com/beego/bee
安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步。

以上两个安装完成后,那么beego环境搭建基本完成了。我们可以创建一个简单的项目来运行一下。


进入cmd命令,选择您的go工作目录,执行 bee new myfirstproject 则 myfirstproject项目创建成功


执行 bee run myfirstproject 运行myfirstproject如上图则项目运行成功


浏览器输入http://localhost:8080 如上图则访问成功!

beego具体使用请访问beego官网查看文档


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:盏茶_作酒

查看原文:Golang学习-第三篇 认识Web框架

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5962 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传