【问题标题】:Access Javascript variable in Django Template在 Django 模板中访问 Javascript 变量
【发布时间】:2014-04-08 16:10:28
【问题描述】:

有什么方法可以访问Django模板tags中的javascript变量吗?
我可以做这样的事情吗,

<!DOCTYPE html>
<html>
    <body>
    <script>
        var javascriptvar=0;
    </script>
    {% if javascriptvar==0 %}
         do this
    {% else %}
         do this
    {% endif %}
    </body>
</html>

【问题讨论】:

  • 不是这样的。 Python 和 JavaScript 在两个完全不同的时间执行。你想做什么,为什么?你可以使用 AJAX,但它可能是矫枉过正
  • @lan ,实际上我正在尝试使用 django 模板标签截断一些文本,并且此处理基于一些 javascript 变量。
  • @Nishant Django 和 JavaScript 分别共享不同的执行环境服务器和客户端......你试图做的事情是不正确的。如果 javascriptvar 如此明显,我会建议在模板本身上使用它
  • JS 变量是如何设置的,你为什么要基于它来构建你的 Django 逻辑?
  • 取决于你想要达到的目标。如果只需要在客户端截断文本,则根本不需要 django 标签。如果您需要在服务器上截断并保存截断的文本,请使用 ajax

标签: javascript python django


【解决方案1】:

不,Django 模板是在服务器端编译的。然后将其发送到客户端,在客户端的浏览器中执行 JavaScript。在客户端浏览器上执行的 JavaScript 所做的任何更改都不会影响模板。到那时为时已晚。

然而,JavaScript 可以做一些事情,比如从服务器发出另一个请求以获取更多信息。或者您可以在将其发送到客户端之前预先计算服务器上的值。如果您更明确地说明您要做什么,我们应该能够提供帮助。

您当然可以使用 Django 模板来设置 JavaScript 变量。

<script>
    var myVar = '{{ py_var }}';
</script> 

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 2016-03-07
    • 2011-02-02
    • 2018-07-01
    • 2017-02-12
    • 2011-01-05
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多