1. MVC设计模式

MVC 是 Model-View-Controller 的缩写,其中每个单词都有其不同的含义:

  • Modle 代表数据存储层,是对数据表的定义和数据的增删改查;
  • View 代表视图层,是系统前端显示部分,它负责显示什么和如何进行显示;
  • Controller 代表控制层,负责根据从 View 层输入的指令来检索 Model 层的数据,并在该层编写代码产生结果并输出。

MVC处理过程为:首先控制器接收用户的请求,并选择相应的模型去处理;模型根据控制器的调用进行相应的业务处理逻辑,并返回数据;最后控制器选择相应的视图将数据显示给客户端用户。

【优点】

  1. 耦合性低,方便维护,可以利于分工协作

  2. 重用性高

【缺点】

  1. 使得项目架构变得复杂,对开发人员要求高

2. MVT设计模式

Django 借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个层次,也就是 MTV 设计模式;

  • Model:数据存储层,处理所有数据相关的业务,和数据库进行交互,并提供数据的增删改查;
  • Template:模板层(也叫表现层)具体来处理页面的显示;
  • View:业务逻辑层,处理具体的业务逻辑,它的作用是连通Model 层和 Template 。

为什么使用MVT结构?

1.实现高内聚低耦合易于开发

在实际开发过程中,需要根据不同的需求对原版本进行迭代,MVT把对数据库操作,请求处理和页面布局进行了分离,方便了对代码的更新,不需要牵一发而动全身,易于代码的维护。

2.提高开发效率

做到了前后端的分离,易于代码的整合.方便使用者分工合作。也提高了重用性,对于相似部分方便复用,提高了开发效率。
那么,你是不是还记住了那句话“Django框架遵循MVC设计”?MVC是个什么玩意儿?

M表示Model,主要用于对数据库层的封装;
V表示View,用于向用户展示结果;
C表示Controller,是核心,用于处理请求、获取数据、返回结果。

关于MVC,有3点需要注意:

1.大部分开发语言中都有MVC框架;
2.MVC框架的核心思想是:解耦;
3.能降低各功能模块之间耦合性,方便变更,更容易重构代码,最大程度实现代码重用。

最后,Django架构模式:
MVT架构模式:在MVC基础上,对控制器controller进行了封装,增加了模块功能【Templates】实现前端网页【Html】

文章借鉴:

https://blog.csdn.net/zhouxinxin111/article/details/120054761

http://c.biancheng.net/view/7288.html

相关链接:

MVT模型与MVC模型的区别的更多相关文章

  1. orm查询优化 MTV和MVC模型 字段的chioces参数 Ajax

    目录 一.ORM查询优化 1. all()查询 2. only()/defer()方法 (1)only()方法 (2)defer()方法 3. select_related()/prefetch_re ...

  2. Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1

    这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...

  3. ASP.NET MVC模型绑定的6个建议(转载)

    ASP.NET MVC模型绑定的6个建议 发表于2011-08-03 10:25| 来源博客园| 31 条评论| 作者冠军 validationasp.netmvc.netasp 摘要:ASP.NET ...

  4. ASP.NET没有魔法——ASP.NET MVC 模型绑定解析(上篇)

    前面文章介绍了ASP.NET MVC中的模型绑定和验证功能,本着ASP.NET MVC没有魔法的精神,本章内容将从代码的角度对ASP.NET MVC如何完成模型的绑定和验证进行分析,已了解其原理. 本 ...

  5. Asp.Net MVC 模型(使用Entity Framework创建模型类)

    这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...

  6. [MVC学习日记]2014/12/01 初步认识MVC模型。

    2014/12/011.初步认识MVC模型.MVC模式是一种表现模式.它将web应用程序分成三个部分,模型(Model).视图(View).控制器(Controller).Model:是实现业务逻辑层 ...

  7. 设计模式之美学习(九):业务开发常用的基于贫血模型的MVC架构违背OOP吗?

    我们都知道,很多业务系统都是基于 MVC 三层架构来开发的.实际上,更确切点讲,这是一种基于贫血模型的 MVC 三层架构开发模式. 虽然这种开发模式已经成为标准的 Web 项目的开发模式,但它却违反了 ...

  8. Django与AJAX-choice字段-MTV和MVC模型-sweetalert搭建页面

    Django中的choice字段 应用的场景: 用户信息举列:如用户性别.婚否.学历.工作状态等可以列举出来供选择的信息 书写models创建表模型: 数据的获取和查询: 总结: "&quo ...

  9. 扩展 ASP.NET MVC 模型扩展 – ASP.NET MVC 4 系列

           大部分人不能将核心运行时(System.Web 中的类)和 ASP.NET Web Forms 应用程序平台(System.Web.UI 中的类)区分开来.        ASP.NET ...

随机推荐

  1. core-js/modules/es.error.cause.js 报错

    解决方法: 1.先删除 node_modules 依赖 npm rm -rf node_modules 2.首先安装 报错的插件 npm install --save core-js 3.最后再 np ...

  2. 【前端必会】Prettier,有了ESlint,还要Prettier

    介绍 已经安装了ESLint为什么还要Prettier,主要是让ESLint专注于语法相关的验证,检查潜在问题.而代码格式化则有Prettier来接管 对比参考: https://baijiahao. ...

  3. Netty 学习(五):服务端启动核心流程源码说明

    Netty 学习(五):服务端启动核心流程源码说明 作者: Grey 原文地址: 博客园:Netty 学习(五):服务端启动核心流程源码说明 CSDN:Netty 学习(五):服务端启动核心流程源码说 ...

  4. 矩阵顺时针打印(C++)(? 为什么不能AC,9度1391)

    #include <iostream> #include <fstream> using namespace std; int a[1000][1000]; void prin ...

  5. @input含义和用法

    @input :一般用于监听事件只要输入的值变化了就会触发input 示例: <div id="div1"> <input type="text&quo ...

  6. 一个C#开发者学习SpringCloud搭建微服务的心路历程

    前言 Spring Cloud很火,很多文章都有介绍如何使用,但对于我这种初学者,我需要从创建项目开始学起,所以这些文章对于我的启蒙,帮助不大,所以只好自己写一篇文章,用于备忘. SpringClou ...

  7. CF600E Lomsat gelral (线段树合并)

    相当于是线段树合并的模板题,比(雨天的尾巴)还要板. 唯一注意的是线段树的更新,因为同一子树中可能有多种颜色占主导地位,要输出编号和,比如一颗子树中,1出现3次(最多),3出现3次,那么应该输出4. ...

  8. POJ1734 Sightseeing trip (Floyd求最小环)

    学习了一下用Floyd求最小环,思路还是比较清晰的. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring ...

  9. python-D3-语法入门1

    Python语法注释 什么是注释 注释其实就是对一段代码的解释说明(注释是代码之母) 如何编写注释 方式1:解释说明文字前加警号 (pycharm中有快捷键ctrl+?) # 注释(单行注释) 方式2 ...

  10. sql面试50题------(21-30)

    文章目录 21.查询不同老师所教不同课程平均分从高到低显示 23.使用分段[100,85),[85,70),[70,60),[<60] 来统计各科成绩,分别统计各分数段人数:课程ID和课程名称 ...