为什么views.py而不是controller.py

时间:2012-11-01 16:42:46

标签: python django design-patterns

在大多数MVC / ORM类型系统中,django的views.py可能被称为控制器,它们模板化视图。这是他们遵循的不同设计模式吗?为什么叫做views.py?

1 个答案:

答案 0 :(得分:4)

FAQ已回答了这个问题。

  

Django似乎是一个MVC框架,但你可以调用Controller   “查看”,并查看“模板”。你怎么不用   标准名称?

     

嗯,标准名称是值得商榷的。

     

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

     

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

     

此外,将内容与演示文稿分开是明智的 -   这是模板的用武之地。在Django中,“视图”描述了哪些   显示数据,但视图通常委托给模板,其中   描述了如何呈现数据。

     

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

     

如果你渴望缩略语,你可能会说Django是一个“MTV”   框架 - 即“模型”,“模板”和“视图”   更有意义。

     

当然,在一天结束时,归结为完成任务。   并且,无论如何命名,Django都可以完成任务   对我们来说最合乎逻辑的方式。