iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >深入浅析Django MTV模式
  • 535
分享到

深入浅析Django MTV模式

2024-04-02 19:04:59 535人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

mvc模式 MVC, 全名Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model), 视图(View)和控制器(C

mvc模式

MVC, 全名Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model), 视图(View)和控制器(Controller), 具有耦合性低,重用性高、生命周期成本低等优点。

在这里插入图片描述

MVT模式

模型:数据存储层,处理与数据相关的所有事务,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。负责业务对象与数据库的对象(ORM)。
模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。
Django作为WEB框架,需要一种很便利的方法动态的生成html网页,因此有了模板这个概念。模板包含所需HTML的部分代码以及一些特殊的语法,特殊语法用于描述如何将视图传递的数据动态插入HTML网页中。
DjanGo可以配置一个或多个模板引擎(甚至是0个,如前后端分离,Django只提供api接口,无需使用模板引擎),模板引擎有Django模板语言(DTL)和Jinja2。Django模板语言是Django内置的功能之一,Jinja2是当前python流行的模板语言。
视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁。主要负责处理用户请求和生成相应的相应内容,然后在页面或其他类型文档中显示。也可以理解为视图是MVC架构里面的C部分(控制器),主要处理功能和业务上的逻辑。我们习惯使用视图函数处理Http请求,记载视图里定义def函数,这种方式成为FBV(Function Base Views)。

在这里插入图片描述

(引自:https://zhuanlan.zhihu.com/p/362268440)

Django框架的基础就是MTV模式, 将开发任务分为三大部分:

  • Model:负责业务对象和数据库的关系映射(ORM),与MVC模式中的Model是等同。
  • Template:负责如何把页面展示给用户(HTML),这部分类似与MVC中的视图。
  • View:负责业务逻辑,并在适当时候调用Model和Template。跟MVC中的Controller等同。

在这里插入图片描述

首先,我们要知道:MVT是什么?
昨天也提到了:
M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

MVT是一个前沿的软件架构模式,它具有高效的ORM(Object Relation Mapping)数据操作,将程序中的对象【object】和数据库中的表【relation】建立关联关系,关系【mapping】的过程称为ORM.

为什么使用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】
MVC架构模式:数据model–>视图views–>数据交互–>服务器–>控制器controller–>相应函数的调用。

到此这篇关于Django MTV模式的文章就介绍到这了,更多相关Django MTV模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 深入浅析Django MTV模式

本文链接: https://www.lsjlt.com/news/134641.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入浅析Django MTV模式
    MVC模式 MVC, 全名Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model), 视图(View)和控制器(C...
    99+
    2024-04-02
  • 深入浅析Java中的Balking模式
    深入浅析Java中的Balking模式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。当现在不适合这个操作,或是没有必要进行这个操作时就直接放弃这个操作而回去。这个就是Balki...
    99+
    2023-05-31
    java balking ava
  • 深入浅析java设计模式中的代理模式
    这期内容当中小编将会给大家带来有关深入浅析java设计模式中的代理模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、什么是代理模式(Porxy)  概念:代理模式就是为其他对象提供一种代理以控制对这个...
    99+
    2023-05-31
    java ava 代理模式
  • 【深入浅出设计模式--状态模式】
    深入浅出设计模式--状态模式 一、背景二、问题三、解决方案四、 适用场景总结五、后记 一、背景 状态模式是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。其与有限状态机的概念紧...
    99+
    2023-08-30
    c++ 设计模式 状态模式 单例模式
  • 深入浅析AngularSSR
    目录使用 SSR 的好处对 SEO 更加友好提高移动端的性能更快地展示首页为项目增加 SSR替换浏览器 API使用 URL 绝对地址Prerender 预渲染静态 HTML预渲染路径...
    99+
    2022-11-13
    Angular SSR Angular SSR好处 Angular SSR用法
  • 深入浅析Java NIO中的IO模型
    这期内容当中小编将会给大家带来有关深入浅析Java NIO中的IO模型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一.什么是同步?什么是异步  同步和异步的概念出来已经很久了,网上有关同步和异步的说法也...
    99+
    2023-05-31
    java io模型 nio
  • Java深入浅出讲解代理模式
    目录1、动态代理模式2、JDK动态代理3、JDK动态代理代码演示1、动态代理模式 动态代理的特点: 当代理对象的时候,不需要实现接口代理对象的生成,是利用JDK的API,动态的在内存...
    99+
    2024-04-02
  • 深入浅析MySQL Explain
    目录一、id二、select_type三、table四、type五、possible_keys六、Key七、key_len八、ref九、rows十、Extra在日常工作中,...
    99+
    2024-04-02
  • Java设计模式系列之深入浅出单例模式
    目录前言饿汉式懒汉式线程安全问题volatile的作用总结前言 我不知道大家工作或者面试时候遇到过单例模式没,面试的话我记得我当时在17年第一次实习的时候,就遇到了单例模式,面试官是...
    99+
    2024-04-02
  • 深入浅析Java8中的lambda表达式
    深入浅析Java8中的lambda表达式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。函数式接口函数式接口(functional interface 也叫功能性接口,其实是同一...
    99+
    2023-05-31
    java8 lambda ava
  • PHP 设计模式:深入浅出的指南
    面向对象设计中的设计模式是可重用的解决方案,用于解决常见的软件开发问题。它们提供了一种结构化的方法来组织代码,提高其可重用性、可维护性和可扩展性。PHP 中有许多有用的设计模式,本文将深入浅出地探讨其中一些最流行的模式。 单例模式 单例...
    99+
    2024-02-20
    PHP 面向对象程序设计 设计模式 单例模式 策略模式 外观模式
  • 深入浅析Java中的class文件格式
    这期内容当中小编将会给大家带来有关深入浅析Java中的class文件格式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。class文件中的fields_count和fieldsfields_count描述的...
    99+
    2023-05-31
    java class ava
  • 深入浅出JavaScript前端中的设计模式
    目录关于设计模式七种常见的设计模式单例模式工厂模式适配器模式装饰器模式策略模式观察者模式发布-订阅模式关于设计模式 软件设计模式,又称设计模式,是一套被反复使用、多数人知晓的、经过分...
    99+
    2023-05-20
    JavaScript设计模式 JS设计模式
  • Java设计模式之策略模式深入刨析
    目录1.基本介绍2.传统方式3.采用策略模式4.策略模式的注意事项和细节1.基本介绍 1)策略模式(Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之...
    99+
    2024-04-02
  • Java设计模式之组合模式深入刨析
    目录1.基本介绍2.结构3.组合模式解决的问题4.组合模式解决学校院系展示5.组合模式的注意事项和细节1.基本介绍 1)组合模式(Composite Pattern),又叫部分整体模...
    99+
    2024-04-02
  • python模块导入方式浅析步骤
    目录1.模块的使用2.导入模块并使用3.模块的导入方式之from-import 语句4.__all__变量用来控制*5.总结首先啊,在python中我们熟知的py文件就是一个模块,也...
    99+
    2024-04-02
  • 深入解析Canvas的渲染模式
    Canvas的renderMode详解,需要具体代码示例 在Unity中,Canvas是实现2D UI最基础和关键的组件。Canvas在渲染过程中有两种不同的模式:Screen Space和World Space。这些渲染模式在...
    99+
    2024-01-17
    Canvas 详解
  • 深入浅析JAVA的继承
    本篇文章给大家分享的是有关深入浅析JAVA的继承,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。继承(inheritance)是Java OOP中一个非常重要的概念。继承是在复用...
    99+
    2023-05-31
    java 继承 ava
  • 深入浅析Android中的AsyncTask
    这篇文章给大家介绍深入浅析Android中的AsyncTask,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、Asynctask简介1.1 使用方法简介Asynctask作为Android的基础之一,怎么使用就不多讲...
    99+
    2023-05-31
    android asynctask cta
  • 深入浅析Java中的 FilterInputStream
    这期内容当中小编将会给大家带来有关深入浅析Java中的 FilterInputStream,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。FilterInputStream 介绍FilterInputStr...
    99+
    2023-05-31
    java filterinputstream npu
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作