• MVT模式


    Django

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

    MVT模式与MVC模式

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

    MVC的全拼为Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。

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

    mvc的缺点

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

     

    MVC模式说明

    • M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
    • V全拼为View,用于封装结果,生成页面展示的html内容。
    • C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果

    Django的MVT

    Django也是MVC框架。 但是,Django框架(内部的URLconf)作为控制器的角色,负责了接收用户请求和转发请求的工作,Django 里更关注的是模型(Model)、模板(Template)和视图(Views),故称之为 Django MVT 模式

    • M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
    • V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
    • T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。 
  • 相关阅读:
    cmake Found package configuration file but it set OpenCV_FOUND to FALSE
    pthread库"timespec"结构体重定义解决
    【Windows10】运行软件后,窗口不显示的解决办法
    Windows下Cmake生成动态库install命令失败、导入库概念
    【转载】多尺度增强算法Retinex算法(MSRCR)的原理、实现及应用
    【转载】Ubuntu 和 Windows 之间进行远程访问和文件互传
    博客园Markdown编辑器
    合并两个有序数组(C++)
    从协方差矩阵的估算领会MATLAB矩阵编程思维
    常见排序算法的性能对比
  • 原文地址:https://www.cnblogs.com/tyl23/p/11681496.html
Copyright © 2020-2023  润新知