Django MTV模式解读

Django 使用 MTV 架构模式,它是 MVC 的一种变体,只是命名不同:

MTV 对应 MVC 职责
Model Model 数据层,定义数据库表结构、查询逻辑
Template View 表示层,HTML 模板,负责页面渲染
View Controller 业务逻辑层,接收请求、调用 Model、返回 Response

工作流程

用户请求 → View(处理逻辑)→ Model(读写数据)→ Template(渲染页面)→ HTTP 响应

为什么叫 MTV而不是 MVC?

Django 创始人 Jacob Kaplan-Moss 认为框架里”View”的职责更接近 MVC 中的 Controller,而”展示”应该归 Template。所以 Django 重新命名了:

  • View = Django 处理请求响应的 Python 函数/类(MVC 的 Controller)
  • Template = Django 的 HTML 模板引擎(MVC 的 View)
  • Model = Django 的 ORM 模型(MVC 的 Model,一致)

本质上和 MVC 是一回事,只是术语不同。