首页 > 解决方案 > 为什么 django 被表示为“MTV”模式?

问题描述

在 django文档中,他们提到

在我们对 MVC 的解释中,“视图”描述了呈现给用户的数据。不一定是数据的外观,而是呈现哪些数据。该视图描述了您看到的数据,而不是您如何查看它。这是一个微妙的区别。

...

因此,在我们的例子中,“视图”是特定 URL 的 Python 回调函数,因为该回调函数描述了呈现的数据。

...

那么,“控制器”在哪里?在 Django 的例子中,它可能是框架本身:根据 Django URL 配置向适当视图发送请求的机器。

是的,我完全同意他们的观点retrieve。但是,在修改(或删除)数据的情况下,我不能同意他们提到的内容。因为一般来说我已经实现view了。哪个不处理“存在哪些数据”而是“控制数据”。从这个意义上说,(django 说)不是被称为 a ,而是我认为的那样。modifydeleteviewviewcontroller

还是我view以错误的方式实施?请让我知道 django 的“MTV”的详细信息。

标签: djangomodel-view-controller

解决方案


对于 Django,View 和 Controller 部分之间没有明显的边界,但 View 和 Template 部分之间有明显的边界。对于许多其他 MVC 框架,情况正好相反。这就是为什么对于其他技术上的 MVCT 框架,它们的类型名称被简化为 MVC(视图和模板一起形成视图),而对于 Django,它是 MVT(视图和控制器一起形成视图)。这是我对那种类型命名方案的理解。但不要太执着于它。当您使用 django-rest-framework 之类的东西时,这仍然非常模糊且不正确。


推荐阅读