Python 更改Jinja子模板以响应HTML事件

Python 更改Jinja子模板以响应HTML事件,python,google-app-engine,dom,jinja2,Python,Google App Engine,Dom,Jinja2,假设我有一个基本模板base.html: <!DOCTYPE html> <html> <body> <div id="content"> {% block content %} {% endblock %} </div> </body> </html> {%block content%} {%endblock%} 对于内容块,我有几个可能的子模板,比如chi

假设我有一个基本模板
base.html

<!DOCTYPE html>
<html>
<body>
    <div id="content">
        {% block content %}
        {% endblock %}
    </div>
</body>
</html>

{%block content%}
{%endblock%}
对于
内容
块,我有几个可能的子模板,比如
child1.html
child2.html
等等

是否可以在它们之间切换以响应页面上的HTML事件,比如使用Javascript?(我的动机是让用户单击页面上的按钮来更改页面样式。)

我在Google应用程序引擎上使用了带Python的Jinja2


显然,该模板似乎是由服务器端脚本设置的,因此这不可能实现,但我希望以前一定有人想做类似的事情。

您注意到,当JavaScript在浏览器中运行时,jinja2模板呈现在服务器端

因此JavaScript没有直接影响模板呈现方式的机会

可能有一些解决办法,例如:

生成两个版本的内容 隐藏它们,让JavaScript只显示其中一个

AJAX-从JavaScript中提取适当的内容
JavaScript将检测内部内容,使用AJAX调用将提取所需内容。

为什么不将子模板放在它们自己的
s中,然后使用JS根据需要显示/隐藏它们?@MattDMo,这肯定会起作用,如果可能的话,我只是希望有一个更优雅的解决方案。然后,我怀疑AJAX是您的最佳选择。此外,根据您实现样式更改的具体方式,您可以通过CSS3和JS操作完成所有操作,只需从服务器请求一次内容。