假设我有一个基本模板base.html
:
<!DOCTYPE html>
<html>
<body>
<div id="content">
{% block content %}
{% endblock %}
</div>
</body>
</html>
我有几个可能的 content
子模板,例如 child1.html
、child2.html
等。
是否可以在它们之间切换以响应页面上的 HTML 事件(例如使用 Javascript)? (我的动机是让用户点击页面上的按钮来改变页面样式。)
我在 Google App Engine 上使用 Jinja2 和 Python。
显然模板是由服务器端脚本设置的,所以这应该是不可能的,但我希望有人以前想做类似的事情。
最佳答案
您正确地注意到,当 JavaScript 在浏览器中运行时,jinja2 模板在服务器端呈现。
因此 JavaScript 没有直接机会影响模板的呈现方式。
可能有一些解决方案,例如
生成两个版本的内容
生成隐藏的它们,让您的 JavaScript 仅显示其中之一
AJAX - 从 JavaScript 中提取适当的内容
JavaScript 将检测内部内容,并使用 AJAX 调用提取所需内容。
关于python - 更改 Jinja 子模板以响应 HTML 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24088921/