根据MVC架构的定义和View Layer的职责我们可以说Django模板标签是View Layer的一部分吗? 如果是真的,那么我们不应该在模板标签内访问我们的数据模型,因此this answer违反了MVC架构规则?
答案 0 :(得分:0)
从某种意义上说,我会说是的。
由于您的代码逻辑(模型)和您的视图(模板)逻辑是分开的,因此非常相似,您可以辩论URL.py将充当您的控制器(路由器)
我会查看下面的内容,以便更好地理解它更加详细。
类似的问题和解释。
答案 1 :(得分:0)
来自Django FAQ:
在我们对MVC的解释中,“视图”描述了呈现给用户的数据。它不一定是数据的外观,而是呈现的数据。该视图描述了您看到的数据,而不是您的看法。这是一个微妙的区别。
然而,Django更常被描述为'模型 - 视图 - 模板'架构(并在FAQ中自行完成)。在View确定显示哪些数据的位置,模板确定 数据的显示方式。从这个角度来看,模板不是视图的一部分。
对于这个具体的问题/答案,我会说这不属于模板标签。它不处理任何表示逻辑,而是处理数据检索。这通常在视图中更好地完成,或者如果数据应该在侧面可用,则在上下文处理器中完成。
答案 2 :(得分:0)
视图通常会呈现数据。为此,它需要访问数据。是的,您希望保持视图和数据分离。但你也必须对它有所了解。这是一种权衡。如果将数据复制到另一个日期结构中,即模型和视图之间的中间结构,则可能会使应用程序变慢。 另一种方法是不使用django模板,只需通过rest api从django发回数据。但是如果你使用django模板,那么你提到的答案是合理的。