Beego MVC 简单介绍

MVC 简单介绍

MVC 全名为 Model View Controller, 是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面以及用户交互的同时,不需要重新编写业务逻辑。

Beego 是一个MVC框架:

Model (模型) 主要用于处理应用程序的业务逻辑,以及和数据库打交道

View (视图) 是应用程序中数据显示的部分

Controller (控制器) 控制器作用于模型和视图上,它可以把我们在 Model 模型上面获取的数据显示到 View 视图上面,也可以把 View 传递的数据流向模型对象。它使视图与模型分离开。

Beego 中的控制器

Beego 中的控制器本质上是一个结构体,这个结构体里面内嵌了 beego.Controller。 这样的话我们自定义的控制器就继承了 beego.Controller, 继承以后自动拥有了所有 beego.Controller 的属性和方法。
Beego MVC 简单介绍

Beego 中的路由机制可以控制具体的URL 请求执行哪个控制器的方法。通常每个控制器可以定义很多方法。
Beego MVC 简单介绍

具体的控制器实现

实现一个 MainController 继承了Controller
Beego MVC 简单介绍

beego.Controller 拥有很多方法,其中包括 Init、Prepare、Get、Post、Delete、Put等方法。我们可以通过重写的方式来实现这些方法,如上就实现了重写Get 方法。

Beego 中视图

Beego 中views 目录存放着项目的模板(视图)文件,beego 的模板处理引擎采用的是 Go 内置的包 text/template 包进行处理,并且 beego 的模板处理逻辑是采用了缓存编译方式,也就是所有的模板会在 beego 应用启动的时候全部编译然后缓存在 map 里面。

Beego 中模型

如果我们的应用简单的话,我们可以在 Controller 里面处理常见的业务逻辑,但是如果我们有一个功能想在多个控制器、或者多个模板中复用的话,那么我们就可以把公共的功能单独取出来作为一个模块(Model)。 Model 是逐步抽象的过程,一般我们会在 Model 里面封装一些公共的方法让不同 Controller 使用,也可以在 Model 中实现和数据库打交道。