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 是一回事,只是术语不同。