MVC框架
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和 Controller(控制)
具有耦合性低、重用性高、生命周期成本低等优点
从结构上看, 分成三层
1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。 (展示数据)
2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。 (准备数据)
3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。 (处理数据)
这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
理解
比如一家商场,完全可以分成三部分。一部分是仓库,负责提供商品,这是"功能层"(或者"数据层");另一部分是零售铺面,负责销售商品,这是它的"外观层";两者之间就是"机制层",包括柜台和仓库之间一切互动的机制
这样区分以后,这个商场的结构就变得非常清楚,可以针对不同的层进行优化,提高效率。
MTV框架(Django)
Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性
Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架
Model(模型):负责业务对象与数据库的对象(ORM), 对应于MVC框架中的Model (准备数据)
Template(模版):负责展示给用户的页面, 给views调用, 对应于MVC框架中的View (展示数据)
View(视图):负责业务逻辑,并在适当的时候调用Model和Template, 对应于MVC框架中的Controller (处理数据)
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template