在大多数MVC / ORM类型系统中,django的views.py可能被称为控制器,它们模板化视图。这是他们遵循的不同设计模式吗?为什么叫做views.py?
答案 0 :(得分:4)
FAQ已回答了这个问题。
Django似乎是一个MVC框架,但你可以调用Controller “查看”,并查看“模板”。你怎么不用 标准名称?
嗯,标准名称是值得商榷的。
在我们对MVC的解释中,“视图”描述了获得的数据 呈现给用户。它不一定是数据的外观,但是 提供哪些数据。该视图描述了您看到的数据,而不是 你是如何看待它的。这是一个微妙的区别。
因此,在我们的例子中,“view”是一个Python的回调函数 特定的URL,因为该回调函数描述了哪些数据 呈现。
此外,将内容与演示文稿分开是明智的 - 这是模板的用武之地。在Django中,“视图”描述了哪些 显示数据,但视图通常委托给模板,其中 描述了如何呈现数据。
“控制器”在哪里适合?在Django的情况下,它是 可能是框架本身:发送请求的机制 根据Django URL配置,适当的视图。
如果你渴望缩略语,你可能会说Django是一个“MTV” 框架 - 即“模型”,“模板”和“视图” 更有意义。
当然,在一天结束时,归结为完成任务。 并且,无论如何命名,Django都可以完成任务 对我们来说最合乎逻辑的方式。