MVC,全名是Model View Controller,是Web服务开发的最著名的模式(架构模式),是软件工程的一种软甲架构模式,他把软件系统分成了三个基本部分:模型(Model),视图(View)以及控制器(Controller),具有耦合性低,复用性高,生命周期成本高等优点。MCV架构可以用下面的图来表示
可以从这个图看出来,最上面的一层应该是视图层(从网上截的这个图可能有些问题,视图层是直接面向使用对象的),视图层提供了用户的操作界面,是程序的外壳。
最底层是操作数据的模型层Model
中间的一层是控制层Controller,负责根据用户从视图层输入的指令,通过模型层获取数据后进行相应的操作,最终产生结果返回给视图层。
这三层是紧密联系在一起但又互相独立,每一层的变化都不影响到其他层,每一层都对外提供借接口供其他层调用。这样一来,软件就可以实现模块化,修改外观或数据都不用修改其他层,方便了维护和升级。
------------恢复内容开始------------
通过前面做的那个用户管理的Web服务,我们可以大致的了解一下Django是如何实现功能的,今天就结合前面的知识我们来聊一聊Web开发最经典的MVC架构模式和Django的架构模式。
MVC,全名是Model View Controller,是Web服务开发的最著名的模式(架构模式),是软件工程的一种软甲架构模式,他把软件系统分成了三个基本部分:模型(Model),视图(View)以及控制器(Controller),具有耦合性低,复用性高,生命周期成本高等优点。MCV架构可以用下面的图来表示
可以从这个图看出来,最上面的一层应该是视图层(从网上截的这个图可能有些问题,视图层是直接面向使用对象的),视图层提供了用户的操作界面,是程序的外壳。
最底层是操作数据的模型层Model
中间的一层是控制层Controller,负责根据用户从视图层输入的指令,通过模型层获取数据后进行相应的操作,最终产生结果返回给视图层。
这三层是紧密联系在一起但又互相独立,每一层的变化都不影响到其他层,每一层都对外提供借接口供其他层调用。这样一来,软件就可以实现模块化,修改外观或数据都不用修改其他层,方便了维护和升级。
Django框架在射界模式的时候也是借鉴了MVC框架的思路,将整个框架分成三个部分来降低各个部分的耦合性(解耦)。但是不同与MVC框架,Django分为这三个部分:
- Model——模型,负责业务对象和数据库对象(ORM)
- Template——模板,负责如何把页面展示给客户(前段)
- View——视图,负责业务逻辑,并且在适当的时候调用Model和Template
此外,Django还有一个usls分发器,他的作用是将一个个URL的页面请求分发给不同的view来处理。,具体可以看一下下面的图示
后面,我们就会针对各个系统来进行学习:路由系统、视图系统、模板以及模型。