【发布时间】:2016-11-07 18:53:22
【问题描述】:
据我了解,没有办法在模板中包含 django 变量进行数学运算,例如
<td>{{variable_1}} + {{variable_2}}</td>
人们建议在视图中进行计算,但我担心我们应该使用服务器端来将数据从服务器传输到客户端——仅此而已。所有计算都应使用客户端计算机电源完成。另一种选择可能是在页面加载后在 javascript(尤其是 jquery)中进行计算,但缺点是在计算非常复杂的情况下,数据呈现滞后。这里的最佳实践和最平衡的解决方案是什么?
【问题讨论】:
-
VTC 主要基于意见。在我看来,您认为这应该发生在客户端和/或模板中。没事儿。 Django 强烈认为不应该这样做,因为他们围绕这种观点构建了框架,并故意在模板中限制了此类用途。作为旁注,您自己似乎对此感到矛盾,因为一开始您说它应该是客户端,然后担心由于在客户端执行它而导致的渲染延迟。
-
好吧,我担心客户端延迟渲染,因为我在页面加载后进行计算,否则你怎么能循环遍历表格
-
这有很大的错误。在模板中进行计算不会占用客户端的处理能力。它只是将它转移到框架中的另一个点,但我们仍然在服务器端。这看起来像是一个为了问而问的问题。如果没有,请考虑角度。我怀疑在绝大多数应用程序中,模板中会有这么多重要的计算。
-
Wtower 的评论需要多次投票。如果 OP 认为模板是在客户端呈现的,那么他对 Django 有一个根本性的误解。