jinja2 模板继承示例不起作用
Posted
技术标签:
【中文标题】jinja2 模板继承示例不起作用【英文标题】:jinja2 template inheritance sample does not work 【发布时间】:2012-11-29 17:13:19 【问题描述】:有人成功尝试过 jinja2 模板继承吗?该示例对我来说只是部分工作。
base.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
% block head %
<link rel="stylesheet" href="style.css" />
<title>% block title %% endblock % - My Webpage</title>
% endblock %
</head>
<body>
<div id="content">% block content %% endblock %</div>
<div id="footer">
% block footer %
© Copyright 2008 by <a href="http://domain.invalid/">you</a>.
% endblock %
</div>
</body>
index.html(子模板)
% extends "base.html" %
% block title %Index% endblock %
% block head %
super()
<style type="text/css">
.important color: #336699;
</style>
% endblock %
% block content %
<h1>Index</h1>
<p class="important">
Welcome on my awesome homepage.
</p>
% endblock %
我的输出
我的问题: 1.页面标题为“索引”。它应该是“索引 - 我的页面” 2.没有页脚
请帮忙!!!! 供参考:我使用的是最新的谷歌应用引擎,python 2.7,IDE 是 Visual Studio 2012 + Python for Visual Studio,KAY framework(从 django 和 jinja2 扩展)
views.py
def index(request):
return render_to_response('myapp/index.html')
【问题讨论】:
你能在 Python 代码中显示渲染步骤吗? 您好,我刚刚根据 jinja2 文档中的样本修改了我的问题,因为没有人回答我之前的问题。能否请你帮忙?谢谢!!! 仍然没有 Python 代码。由于您使用的是另一个框架,因此这一点更加相关。 Python 代码已添加。但在 python 代码中没有什么特别之处。 我没有发现任何明显的错误。你可能有两个版本的 base.html 吗?我知道 jinja 会查看多个模板目录(如果这样定义)并选择它找到的第一个。 【参考方案1】:Jinja2 继承自您的 TEMPLATE_DIRS 设置。我假设您的路径不正确。试试:
% extends "myapp/base.html" %
【讨论】:
你是对的。我只是想知道为什么???我将 base.html 和 index.html 放在同一个文件夹中。为什么我需要 myapp/base.html以上是关于jinja2 模板继承示例不起作用的主要内容,如果未能解决你的问题,请参考以下文章
python-django模板继承在引用基中的多个块时不起作用
python-django模板继承在引用base中的多个块时不起作用