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

时间:2014-06-06 19:02:47

标签: python google-app-engine dom jinja2

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

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

我有content块的几个可能的子模板,比如child1.htmlchild2.html等。

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

我在Google App Engine上使用Jinja2和Python。

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

1 个答案:

答案 0 :(得分:2)

您已正确注意到,当您在浏览器中运行JavaScript时,jinja2模板将呈现为服务器端。

因此,JavaScript没有直接影响模板渲染的方式。

可能有一些解决方案,例如

生成两个版本的内容

隐藏生成它们,让您的JavaScript只显示其中一个

AJAX - 从JavaScript中提取适当的内容

JavaScript会检测内部是什么,使用AJAX调用会拉动所需内容。