如何将javascript占位符包含在Jinja 2占位符中?
我正在尝试将此功能嵌入我的Flask应用程序--> 因此,我有一个模板(Jinja2),在这里我显示了一堆图像。为了访问这些图像,我使用Flask的url_for()命令,该命令使用符号-->{{}。在动态加载图像的Javascript文件中,使用了相同的符号,即-->{{}。我想知道如何使用Javascript的{{}和Flask/Jinja 2{{} 下面是用实际文件名替换{{img}}的每个实例的Javascript函数如何将javascript占位符包含在Jinja 2占位符中?,javascript,jquery,html,flask,jinja2,Javascript,Jquery,Html,Flask,Jinja2,我正在尝试将此功能嵌入我的Flask应用程序--> 因此,我有一个模板(Jinja2),在这里我显示了一堆图像。为了访问这些图像,我使用Flask的url_for()命令,该命令使用符号-->{{}。在动态加载图像的Javascript文件中,使用了相同的符号,即-->{{}。我想知道如何使用Javascript的{{}和Flask/Jinja 2{{} 下面是用实际文件名替换{{img}}的每个实例的Javascript函数 函数addPhotos(){ var template=selec
函数addPhotos(){
var template=select(“#wrap”).innerHTML;
var html=[];
var-nav=[];
对于(i=0;i
{{caption}
{{desc}
您需要使用引号来转义大括号。由于您需要在html属性src
中执行此操作,您还必须转义这些引号,因为在html属性中已经使用引号,实现这一点的方法是使用“
看看下面的img
tagsrc
属性。如果您想转义不属于HTML属性的Jinja花括号,那么可以使用Jinja{%raw%}
块(请参见我如何包围{caption}}
)
{%raw%}{{'caption'}{%endraw%}
{%raw%}{{desc}{%endraw%}
好的,我试过了,但似乎“不起作用。我在上传部分编辑了新的错误消息。好的,我认为你的错误与你描述的问题无关。你的JavaScript代码在替换{img}}
之前失败。看起来像是你的选择('#wrap'))
为null,您正在调用select(“#wrap”)。className
在“null”上,您需要首先解决此错误,然后在不使用"e;
的情况下重试。好的,因此我已设法使其工作。我将更新答案。您关于使用转义序列的输入非常有用。我使用了{%raw%}这是金甲2号的逃生命令,也是为了达到同样的目的。不过我会接受你的回答,因为它间接地引导我去解决它。
<div class="mainPage" id="fullpage">
<div class="first section">
<div class="wrap" id="wrap">
<div class="photo photo_front" id="photo_{{index}}" onclick="turn(this)">
<div class="photo-wrap">
<div class="side side-front">
<p class="image">
<img src="{{ url_for('static',filename='photo/"{{img}}"') }}">
</p>
<p class="caption">{% raw %}{{'caption'}}{% endraw %}</p>
</div>
<div class="side side-back">
<p class="desc">{% raw %}{{desc}}{% endraw %}</p>
</div>
</div>
</div>
</div>
</div>