Django对MVC的主张感到困惑,究竟是什么?

时间:2009-08-18 00:30:28

标签: python django model-view-controller design-patterns

那么Django究竟实现了什么?

似乎有

Models
Views
Templates
  

Models =数据库映射

     

观看=从中获取相关数据   通过模板对其进行建模和格式化

     

Templates =根据Views

提供的数据显示HTML
编辑:S。Lott在编辑上一篇文章时清除了很多,但我还是希望听到其他反馈。谢谢!

这是对的吗?看起来Django似乎与MVC差不多,只是把它称之为混淆了人们。

1 个答案:

答案 0 :(得分:17)

Django的开发人员对MVC范例略有非传统观点。他们实际上在常见问题解答中解决了这个问题,您可以阅读here。用他们自己的话说:

  

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

     

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

     

此外,将内容与表示分开是明智的 - 这是模板的用武之地。在Django中,“视图”描述了呈现的数据,但视图通常委托给模板,该模板描述了数据的呈现方式。

     

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