Javascript onclick加载{%include';test.html';%}

Javascript onclick加载{%include';test.html';%},javascript,jquery,python,flask,jinja2,Javascript,Jquery,Python,Flask,Jinja2,我想在用户单击元素时加载Jinja2模板字符串。 例如,我有如下标签: <div class="one"><a href="#one">One</a></div> <div class="two"><a href="#two">Two</a></div> <div class="three"><a href="#three">Three</a></div

我想在用户单击元素时加载Jinja2模板字符串。 例如,我有如下标签:

 <div class="one"><a href="#one">One</a></div>
 <div class="two"><a href="#two">Two</a></div>
 <div class="three"><a href="#three">Three</a></div>
单击两个后,必须加载此字符串:

{% include 'two.html' %}
等等。
我如何处理这个问题?动态内容加载单击时,您必须使用一些JavaScript来实现这一点


一种解决方案是使用jQuery load,请记住JavaScript发生在浏览器(客户端),而Jinja2是基于python的模板,将发生在服务器端。通过JavaScript显示模板字符串将无法达到预期的结果。似乎有两种方法可以实现你想要的

一个选项是在页面最初加载时输出模板的结果,然后通过一些javascript行为显示它。有许多jQuery插件可以实现这一结果,您可以看一个例子


如果您不希望在首次加载页面时生成所有模板结果,那么另一种选择是通过ajax加载模板的结果。ajax请求需要得到所需的jinja2模板的结果,然后将其输出到页面中。提供了一种简单的方法。

请记住,JavaScript发生在浏览器(客户端)中,如果我没有弄错的话,Jinja2就是将发生在服务器上的python。通过JavaScript显示模板字符串将一事无成。您可能需要在提供页面时加载所有项目,然后在单击时显示它们,或者需要一个Ajax解决方案来获取模板结果并在单击时插入。谢谢sirReal,是的,您是对的,我使用的是python Flask,它不允许实现该方法。唯一的问题是,当单击div时,我只希望执行Jinja2字符串,如{%include'one.html%},正如您所说的,我想Agax可以克服这个问题。谢谢你,我很乐意。亲爱的Kamil,谢谢你的回复,但是load方法在这里不起作用,因为我使用的是python microframework Flask,它不允许通过url加载html文档。
{% include 'two.html' %}