那么Django究竟实现了什么?
似乎有
Models
Views
Templates
编辑:S。Lott在编辑上一篇文章时清除了很多,但我还是希望听到其他反馈。谢谢!Models =数据库映射
观看=从中获取相关数据 通过模板对其进行建模和格式化
Templates =根据Views
提供的数据显示HTML
这是对的吗?看起来Django似乎与MVC差不多,只是把它称之为混淆了人们。
答案 0 :(得分:17)
Django的开发人员对MVC范例略有非传统观点。他们实际上在常见问题解答中解决了这个问题,您可以阅读here。用他们自己的话说:
在我们对MVC的解释中,“视图”描述了呈现给用户的数据。它不一定是数据的外观,而是呈现的数据。该视图描述了您看到的数据,而不是您的看法。这是一个微妙的区别。
因此,在我们的例子中,“view”是特定URL的Python回调函数,因为该回调函数描述了呈现的数据。
此外,将内容与表示分开是明智的 - 这是模板的用武之地。在Django中,“视图”描述了呈现的数据,但视图通常委托给模板,该模板描述了数据的呈现方式。
“控制器”在哪里适合?在Django的情况下,它可能是框架本身:根据Django URL配置向适当视图发送请求的机制。