Django

  • 由python实现的,开源的,Web开发框架
  • 起初被开发来用于管理劳伦斯日报(Lawrence Journal-World)旗下的新闻内容网站
  • 2005年7月在BSD许可协议下发布
  • Django是一个比利时音乐家的名字
  • 注重 代码复用,强调DRY原则(don't repeat yourself),可以帮助开发者快速地创建复杂的网站

MVC模式

  • MVC: Model-View-Controller 模型-视图-控制器

    • M: 数据处理
    • V: 界面显示
    • C: 逻辑处理
  • 上个世纪八十年代为Smalltalk语言发明的一种 软件框架模式。最开始用于Desktop程序开发,现在已被广泛使用,包括Web开发。

  • 核心思想: 分层,解耦。MVC分离了 数据处理 和 界面显示 的代码,使得程序可以在不修改数据处理相关逻辑的前提下,方便地切换不同的显示界面

  • 目的: 提高程序的扩展性和可维护性。

  • Web开发中的MVC

  • M: model层,负责对数据的处理,包括对数据的增删改查等操作
  • V: view层,负责显示model层的数据

MVC的核心思想就是模型的复用,模型不用关心处理结果展现,比如模型返回一些数据,然后交给不用的视图展现,可以使用不同的视图来访问同一个模型;代码方便维护,比如修改模型不会影响到视图(模板),反过来修改视图,也不会影响到模型;方便测试, 比如,将业务逻辑代码写在servlet里面,需要部署到容器上,然后才能测试。而将业务逻辑代码写在类里面,可以直接用main()测试(不依赖容器)

mvc的缺点

使用mvc,会增加代码量、相应地也会增加软件开发的成文,设计的难度也会增加,适合大型项目。
(1)视图跟控制器过于紧密的连接,(视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。【例如,不可能总是在jsp页面中直接访问模型,一般放在逻辑控制层进行处理,servlet】)
(2)增加了系统结构和实现的复杂性
(3)部分高级界面工具或构造器不支持MVC
(4)视图对模型数据的访问效率低(依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。【例如,页面的有一部分数据我并没有更新,但是提交到模型层照样会去获得返回显示 】)
(4)调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。
     简单的小型项目,使用MVC设计反而会降低开发效率,层和层虽然相互分离,但是之间关联性太强,没有做到独立的重用

Django的MVT模式

  • Django MVT 模式

    • M: Model, 模型 与MVC中的M相同,负责对数据的处理
    • V: View, 视图 与MVC中的C类似,负责处理用户请求,调用M和T,响应请求
    • T: Template, 模板 与MVC中的V类似,负责如何显示数据(产生html界面)

说明:

  • Django也是MVC框架。 但是,Django框架(内部的URLconf)作为控制器的角色,负责了接收用户请求和转发请求的工作,Django 里更关注的是模型(Model)、模板(Template)和视图(Views),故称之为 Django MVT 模式
  • 处理过程: Django框架接收了用户请求和参数后,再通过正则表达式匹配URL,转发给对应视图进行处理。视图调用M处理数据,再调用T返回界面给浏览器;
  • 参考:The Django Book

    Django follows the MVC pattern closely, however it does use its own logic in the implementation. Because the “C” is handled by the framework itself

联系方式

QQ:1217675462
欢迎交流

详细介绍MVC与Django的MVT模式相关推荐

  1. Django的MVT模式

    MVT模式 有一种程序设计模式叫MVC,其核心思想是分工.解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容. MVC的全拼为Model-View-Controller,最早 ...

  2. 如何使用Sentinel做流量控制?此文将附代码详细介绍Sentinel几种限流模式

    前言:大家好,我是小威,24届毕业生,在一家满意的公司实习.本篇文章将详细介绍Sentinel的两种限流模式,由于篇幅原因,后续文章将详细介绍Sentinel的其他三种. 如果文章有什么需要改进的地方 ...

  3. 虚拟网络编辑器三种模式工作原理详细介绍(桥接-网络地址转换-主机模式)

     1.桥接模式(Bridged) 使用该模式的虚拟操作系统是局域网中的一个独立主机,具有独立访问网络中其他主机的功能.它的配置信息由VMnet0虚拟网络提供,不支持DHCP服务.用户需要按照一定的规则 ...

  4. 设计模式中,MVC模式与MVT模式的区别

    1.MVC模式 有一种程序设计模式叫MVC,其核心思想是分工.解耦,让不同的代码块之间降低耦合,增强代码的 可扩展性和可移植性,实现向后兼容. MVC的全拼为Model-View-Controller ...

  5. Python+Django 实现MVT页面

    目录 前言: 一.介绍Django和MVT模式 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架. 使用 Django,只要很少的代码,Python 的程序开发人员就可以 ...

  6. 计算机串口接spi,SPI串口模块-SPI接口详细介绍

    SPI串口模块-SPI接口详细介绍 1. SPI串口模块-概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线.常规只占用四 ...

  7. **Django介绍 和 MVT 模式 MVC 模式对比**

    1. 简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计.劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在 ...

  8. django MVT模式介绍

    Django介绍 1. 简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计.劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架, ...

  9. Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)

    1.虚拟环境搭建 创建新的Django框架的虚拟环境: 注意:如果没有pipenv指令,需要安装这个支持库,同时需要记住配置它的环境变量,否则虚拟环境会安装在默认文件夹下(一般是C:\Users\Ad ...

最新文章

  1. 新建notebook时发现在notebook里的sys.path与电脑上不一样
  2. 102.怎么学好软件工程?软件工程 = 工具 + 方法 + 过程
  3. Python 数据结构与算法——tree(树)
  4. 数据库原理及应用实验二
  5. 渗透第一个靶机 shop1.0 (还是简单渗透版)
  6. Layabox2初学(一)javascript
  7. (C语言) 用牛顿迭代法求方程2x^3 - 4x^2 + 3x - 6 = 0在1.5附近的根
  8. 远程oracle 不通,Oracle开放1521端口 telnet不通解决办法
  9. Oracle 12C -- in-database archiving
  10. 英文字母的大小写互换,将所有都变成小写,所有都变成大写 位运算实现
  11. 5-36V输入自动升降压PD快充方案图纸30W低成本芯片
  12. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过浏览器审查元素解析真实网页地址...
  13. 淮阴工学院计算机科学讲师,淮阴工学院计算机与软件工程学院统战人士工作业绩...
  14. qq令牌码怎么提取_QQ空间怎么引流?
  15. VS2019/MFC编程入门——文档、视图和框架:分割窗口
  16. python安装setuptools
  17. google news(news.google.com)重大改版
  18. WIN10剪切板打不开无法调用win+v无法打开
  19. PHP小说源码+自动采集
  20. 三国志13pk版登录武将输入中文名方法与更改图像详解

热门文章

  1. 计算机三级信息安全技术知识点总结(6)
  2. Vue对高德地图2.0的封装使用
  3. 收藏夹吃灰系列(二):教小师妹通过代码实现Swagger在线接口文档转word文档!教完后...?
  4. CATIA CAA二次开发专题(十)---迷宫中穿行(终结篇)
  5. 【叶子函数分享五十四】汉字转拼音函数
  6. 股东转让股权后是否还应承担出资义务
  7. Hadoop/MapReduce 共同好友解决方案:求大量集合的两两交集
  8. 微信订阅号服务器配置url如何配置,微信订阅号开发模式基本配置
  9. 双端口USB Type-C控制器 CYPD6227 (CYPD6227-96BZXI)
  10. 【小游戏】2D游戏黄金矿工GoldMiner(关卡模式)