我知道我们可以像这样将Jinja变量设置为js变量.
var x = {{ 'value' }}
Run Code Online (Sandbox Code Playgroud)
但我正在尝试反过来.即我试图将javascript值设置为jinja变量.我尝试了以下但没有任何效果.
{{value}} = x
{% set value = x %}
{% set value %} x {% endset %}
Run Code Online (Sandbox Code Playgroud)
x是javascript变量.
有没有办法实现这一目标.
Ama*_*dan 11
这是不可能的,并且反映了您对Web应用程序体系结构的深刻理解.jinja2是Python的模板引擎,在您的服务器上运行.您正在谈论的JavaScript正在您的浏览器中运行.
当服务器收到请求时,它会处理jinja2模板以获取它将发送给客户端的响应.你不能"将Jinja变量设置为js变量",你可以这样的方式渲染页面,最终为JavaScript变量分配一个Jinja2变量中的值.即你从var x = {{ value }}jinja2模板开始; jinja2 var x = 42在渲染过程中将其转换为; 然后将渲染的结果发送到客户端,客户端将其作为JavaScript执行,并为其分配值42 x.这里有一个时间序列的事实(Python - > jinja2 - >渲染页面源 - > JavaScript)意味着你不能做你想做的事:jinja2变量和JavaScript变量不同时存在,也不是在同一个地方,并且为jinja2变量分配JavaScript值是不可能的.
为了将值发送42到Python(以及稍后可能发送到jinja2),您需要发出一个请求,将该值从客户端发送到服务器:表单提交或AJAX请求.
如果您准确描述您想要做的事情,您可能会得到更好的响应,您认为需要"将javascript值设置为jinja变量".
小智 5
这是一个旧线程,答案可能仍然是“无法完成”,但我想指出上面两个答案中的错误。问题是“如何将 javascript 值设置为 jinja 变量”。他问的是,如果您的前端页面上运行了 JavaScript,需要某个值才能工作,并且该值由后端脚本给出并通过 Jinja2 传入,您可以使其工作吗?(也许是AJAX)..上面的两个“答案”虽然详细且信息丰富,但都没有解决这个问题。他们似乎都解决了相反的问题,“你能从 javascript 设置 jinja2 变量吗”,我同意这是没有意义的。我正在寻找同一问题的答案(如何将 javascript 值设置为 jinja 变量),因为带有图表的 Flask教程向您展示了将 jinja 变量插入到 java 脚本中。问题是 Java 将双括号 ( {{ VAR1 }} ) 视为脚本的一部分并抛出错误。
| 归档时间: |
|
| 查看次数: |
7022 次 |
| 最近记录: |