Django – MVT 架构



大多数 Web 框架都实现了 MVC(模型-视图-控制器)架构。Django 使用 MVC 的变体,并将其称为 MVT(代表模型-视图-模板)架构。

使用 Web 框架的优势

一般来说,软件框架是一个标准的可重用软件平台,它有助于快速开发软件应用程序。相比之下,**Web 框架**(也称为 Web 应用程序框架)如 Django 提供了构建 Web 应用程序、API 和 Web 服务所需的通用功能。

使用 Web 框架的主要优势在于,它提供了开箱即用的支持来执行 Web 开发过程中的常见操作。例如,您可以轻松地将应用程序连接到数据库。

通常,框架以更有效的方式处理诸如会话管理之类的任务。同样,它与模板工具集成以在网页上呈现动态内容。

MVC 架构

此设计模式将 Web 应用程序开发的整个过程分为三个层。下图解释了这三个层之间的相互作用。

Django MVC Architecture

在 MVC 方法中,用户请求被控制器拦截。它与视图层和模型层协调,将适当的响应发送回客户端。

模型层

模型被称为最低级别,这意味着它负责维护数据。它处理数据。

模型层连接到数据库。它响应控制器的请求,因为控制器本身从不与数据库通信。模型来回与数据库通信,然后将所需的数据提供给控制器。

模型负责数据定义、其处理逻辑以及与后端数据库的交互。

视图层

视图是应用程序的表示层。它负责结果的放置和格式化,并将其发送到控制器,控制器依次将其重定向到客户端作为应用程序的响应。

数据表示由视图组件完成。它实际上为用户生成 UI 或用户界面。因此,在 Web 应用程序中,当您想到视图组件时,只需考虑 HTML/CSS 部分。

视图由模型组件收集的数据创建,但这些数据不是直接获取的,而是通过控制器获取的,因此视图仅与控制器通信。

控制器层

它与视图层和模型层协调,将适当的响应发送回客户端。

控制器层接收来自客户端的请求,并将其转发到模型层。模型层更新数据并将其发送回控制器。控制器更新视图并将响应发送回用户。

MVT 架构

Django 框架采用 MVT 方法。它是 MVC 方法的轻微变体。缩写 MVT 代表模型、视图和模板。

在这里,模型也是应用程序的数据层。视图实际上是承担处理逻辑的层。模板是表示层。

Django MVT Architecture

Django 应用程序的组件

Django 应用程序包含以下组件:

  • URL 分发器
  • 视图
  • 模型
  • 模板

URL 分发器

Django 的 URL 分发器机制等同于 MVC 架构中的控制器。Django 项目包文件夹中的 **urls.py** 模块充当分发器。它定义了 URL 模式。每个 URL 模式都映射到一个视图函数,当客户端请求的 URL 发现与其匹配时,将调用该视图函数。

项目下每个应用程序中定义的 URL 模式也包含在其中。

当服务器以客户端 URL 的形式接收请求时,分发器将其模式与 urls.py 中可用的模式匹配,并将应用程序的流程路由到其关联的视图。

视图函数

视图函数读取客户端请求中包含的路径参数、查询参数和主体参数。它使用这些数据与模型交互以执行 CRUD 操作(如果需要)。

模型类

模型是一个 Python 类。Django 使用模型类的属性来构建具有匹配结构的数据库表。Django 的对象关系映射器有助于以面向对象的方式执行 CRUD 操作,而不是调用 SQL 查询。

视图使用来自客户端以及模型的数据,并以模板的形式呈现其响应。

模板

模板是一个网页,其中 HTML 脚本与 Django 模板语言的代码块交织在一起。

Django 的模板处理器使用从视图接收的任何上下文数据插入这些块,以便形成动态响应。视图依次将响应返回给用户。

这就是 Django 的 MVT 架构如何在 Web 应用程序中处理请求-响应周期。

广告