当前位置: 首页 > 面试题库 >

如何将JavaScript变量传递给Jinja标签

胡越泽
2023-03-14
问题内容
<script>
       function myFunction() {
                var name = "some_string";
                var display = "{{ python_function(name) }}";
                alert(display);
       }
</script>

上面的Javascript写在jinja2模板中。它应该将javascript变量(即var名称)值传递给宏中的python函数。我知道上面的代码无法解决我的目的,因为我没有正确将javascript变量值传递给宏。是否有人在jinja2模板中将javascript变量传递给宏的方法?


问题答案:

您不能以这种方式将值从javascript传递到模板,因为模板将在响应返回到浏览器之前呈现,以供javascript引擎评估。模板渲染器能够解析namejavascript代码中指定的value的唯一方法是解释嵌入的字符串<script></script>

更新 。让我们看看您的第二次尝试,您说的成功了。你有:

<body>
    <button onclick="js_fn('{{ py_fn('some_string') }}')">Click me</button>
    <script>
        function js_fn(variable) {
            alert(variable);
        }
    </script>
</body>

大概这是局部的(比如 __index.html_ )。具有py_fn作用域的视图将加载 __index.html_ ,对字符串“
py_fn(’some_string’)”求值,并替换{{ py_fn('some_string') }}为该求值的结果。假设py_fn是字符串上的标识函数:这是一元函数,接受字符串并立即返回它。然后,评估“
py_fn(’some_string’)”的结果将是字符串'some_string',该字符串将被替换回来,从而获得最终的所谓的“渲染”模板:

<body>
    <button onclick="js_fn('some_string')">Click me</button>
    <script>
        function js_fn(variable) {
            alert(variable);
        }
    </script>
</body>

该字符串将成为请求的响应主体的一部分,因此浏览器将在窗口上转储按钮,评估脚本块内的js代码,这将在上创建一个全局变量js_fn,该变量将发出window警报并对其进行警告。单击该按钮时,将始终js_fn使用常量调用some_string。如您所见,没有值从JS传递到Python
/ Flask。



 类似资料:
  • 本文向大家介绍如何将JavaScript变量传递给PHP?,包括了如何将JavaScript变量传递给PHP?的使用技巧和注意事项,需要的朋友参考一下 您可以在PHP的同一页面上轻松获取JavaScript变量值。尝试以下代码L。

  • 问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标

  • 问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标

  • 问题内容: 我有一个PHP会话变量,在整个会话过程中仍然有效。在开头部分,我包含了我的JavaScript文件。 如果需要以下内容,如何将会话变量传递到JavaScript文件中。 由于无法在JavaScript文件中识别出,因此上面的代码不起作用。因此,我必须放入PHP文件本身,但是如何将其保留在JavaScript文件中? 问题答案: 在您的PHP文件中,您可以将用户设置为全局变量: 在包含外

  • 问题内容: 我需要更新我的时间。该值由正在执行的函数返回。 返回一个整数。 这将返回未防御状态。因此,我需要获取计数并将其传递给 问题答案: 如果您需要在每次调用之后更改重复间隔,则不能使用-使用恒定重复。您需要使用,因此您可以每次更改时间段:

  • 问题内容: 我有一个用JS计算的值,希望将其作为输入表单的一部分传递给PHP脚本。我如何将JS值的JS值作为POST参数获取? 基本上,在提交时,我需要将var通过post传递到下一个脚本。 想到的第一个想法是创建一个不可见的输入表单,该表单中包含值并与该表单一起输入,这可能吗? 问题答案: 是的,您可以在JavaScript代码中使用和设置该隐藏字段的值,以便将其与其他表单数据一起发布。