【问题标题】:jinja2 template inheritance sample does not workjinja2 模板继承示例不起作用
【发布时间】: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 %}
        &copy; 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 会查看多个模板目录(如果这样定义)并选择它找到的第一个。

标签: google-app-engine django-templates jinja2


【解决方案1】:

Jinja2 继承自您的 TEMPLATE_DIRS 设置。我假设您的路径不正确。试试:

{% extends "myapp/base.html" %}

【讨论】:

  • 你是对的。我只是想知道为什么???我将 base.html 和 index.html 放在同一个文件夹中。为什么我需要 myapp/base.html
猜你喜欢
  • 2012-06-04
  • 2016-01-19
  • 2015-04-14
  • 2017-05-15
  • 2010-12-30
  • 1970-01-01
  • 2021-12-10
  • 2021-01-10
  • 2014-04-07
相关资源
最近更新 更多