基于Django的设计模式
django采用了下述的设计模式,但是这些设计模式不单单用在django上。
Web框架使用MVC、MTV 模式的好处:将业务逻辑、数据模型、用户界面都分离出来。实现了解耦合
(一)MVC架构模式
MVC全称Model View Controller,分为三个基本部分:模型Model、视图View和控制器Controller。强调用户请求视图,视图返回数据库数据的过程
-
m(model):模型,代表数据存取层,和数据库进行数据交互
-
v(views):视图,产生HTML页面,代表的是系统中选择显示什么和怎么显示的部分。也就是具体的功能
-
c(controler):控制器,控制访问的视图,和具体数据库返回的数据,
(二)MVT架构模式
Django框架借鉴了MVC的思想,也分成三个部分来降低各个部分之间的耦合性,不同之处是Django框架分为三部分:Model模型、Template模板、View视图,这就是MVT模型。是视图加载数据库数据渲染到模板页面上的过程
-
m(model):模型,负责业务对象与数据库的对象(ORM),和数据库进行数据交互
-
v(views):视图,负责业务逻辑,并在适当的时候调用Model和Template。
-
t(templates):模板,负责如何把页面展示给用户。
(三)MVVM架构模式
MVVM中的M代表Model即模型,V代表Views即视图。不过前两个意味前端的模型和视图,后两个则代表后端的模型和视图,即此架构模式又称为前后端分离
前后端分离:
- 后端只负责返回json格式的数据,
- 前端负责数据的接收和渲染
- 前端接受到数据,按照前端的逻辑,重写渲染数据的过程
前后端分离优点:
- 前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小。
- 后台错误不会直接反映到前台,用户体验比较友好。
- 由于后台是很难去探知前台页面的分布情况,而这又是JS的强项。前后台各尽其职可以最大程度的减少开发难度。