一、Beego框架概述
官网:Homepage - beego: simple & powerful Go app framework
Beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。
Beego是用Go语言开发的高效的HTTP框架,可以用来快速开发APl、Web应用及后端服务等各种应用。Beego是一个RESTful的框架,主要设计灵感来源于Tornado、Sinatra和Flask这3个框架。它还结合了Go语言自身的一些特性(接口、结构体嵌入等)。
二、Beego架构
Beego是基于多个独立模块构建的,是一个高度解耦的框架。最初在设计Beego时就考虑到了功能模块化,用户即使不适用Beego的HTTP逻辑,也可以独立使用这些模块(例如可以使用cache模块来处理缓存逻辑,使用日志模块来记录操作信息,使用config模块来解析各种格式
的文件)。
Beego 是基于八大独立的模块构建的,是一个高度解耦的框架。当初设计 beego 的时候就是考虑功能模块化,用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块,例如:你可以使用 cache 模块来做你的缓存逻辑;使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块,这也是 beego 为什么受欢迎的一个原因。大家如果玩过乐高的话,应该知道很多高级的东西都是一块一块的积木搭建出来的,而设计 beego 的时候,这些模块就是积木,高级机器人就是 beego。至于这些模块的功能以及如何使用会在后面的文档逐一介绍。
三、Beego的执行逻辑
执行逻辑可以拆分为以下几段:
main文件监听启动端口接收请求。
请求经过路由和参数过滤功能被转发给绑定URL的控制器处理。
控制器(Controller)调用Model、Session管理、日志处理、缓存处理模块,以及辅助工具包进行相应的业务处理。其中,模型(Modl)通过ORM直接操作数据库。
业务处理完成,返回响应或视图(View)给请求方。
四、项目代码结构
在实际的项目中,可能有增减或改动。
beego
- conf #配置文件目录
- app.conf #配置文件
- controllers #控制器目录
- default.go #默认控制器文件
- main.go #入口
- models #模型目录
- routers #路由目录
- router.go #路由文件
- static #静态文件目录
- css # css文件目录
- img #图片文件目录
- js #js文件目录
- tests #测试文件目录
- default_test.go #默认测试文件
- views #视图目录
- index.tpl #默认视图文件