专栏首页Golang语言社区Golang学习-第三篇 认识Web框架

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

序言

作为一个Web开发人员,相信对框架并不陌生。那么什么是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框架的特性

简单化

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语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 Go 语言学会 Tensorflow

    Tensorflow 并不是一个专门用于机器学习的库,相反的,它是一个通用的用于图计算的库。它的核心部分是用 C++ 实现的,同时还有其它语言的接口库。Go 语...

    李海彬
  • go语言ping实现

    package main import ( "flag" "fmt" "net" ...

    李海彬
  • Golang实现ping

    ICMP部分的结构 报头 ICMP报头从IP报头的第160位开始,即第20个字节开始(除非使用了IP报头的可选部分)。 Bits 160-167 168-175...

    李海彬
  • 全方位的开源监控工具链介绍

    说到监控现在最火的是全链路监控(服务调用+HTTP调用+数据源访问+MQ链路的监控),但我认为这是狭义的全链路监控,广义的概念应该不仅仅指APM(Appliat...

    smooth00
  • [财务][数据化分析][帆软]报表设计-数据分析(op=view)

    数据分析模式也可以查看报表,但是其可以对报表结果进行不分页预览及在线分析:排序、二次过滤等。

    landv
  • Linux命令(6)——sort命令

    以行为单位对文本文件的内容进行排序,将结果显示在标准输出,比较原则是从行首字符向后,依次按ASCII码值进行比较,最后按升序输出。如果file参数指定多个文件,...

    Dabelv
  • 代理模式

    一、相关介绍 1、代理模式为其他对象提供一种代理以控制对这个对象的访问 2、UML图 ? 3、所属类别:结构型 3、C++程序 1 // 代理模式.cpp :...

    用户1215536
  • 理解JavaScript闭包

    这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

    无邪Z
  • 使用Kafka在生产环境中构建和部署可扩展的机器学习

    用户1263954
  • js 闭包

    星辉

扫码关注云+社区

领取腾讯云代金券