烧瓶模板继承说明

时间:2019-04-14 21:02:08

标签: python jinja2

我正在尝试在Flask(以前熟悉django)中建立一个网站,而我在使模板正确呈现方面遇到困难。

我有一个base.html,home.html和navigation.html。我的路线呈现了home.html模板,该模板扩展了base.html模板,并且工作正常。但是在我的base.html中,还有另一个块称为导航。我输入的导航文件似乎什么都没有呈现。

base.html

<DOCTYPE html>
<html>
 <head>
  <title>{% block title %} {% endblock %} </title>
 </head>

 <body>
  {% block navigation %}
  {% endblock %}
  {% block content %}
  {% endblock %}
 </body>
</html>

home.html

{% extends 'base.html %}

{% block title %} lorem ipsum {% endblock %}

{% block content %} 
 <h1> Here is text </h1>
 <p> Lorem ipsum paragraph </p>
{% endblock %}

navigation.html

{% extends 'base.html %}
{% block navigation %}
<nav>
insert any html here, I used a p tag
</nav>
{% endblock %}

无论导航是什么,我都无法在Navigation.html中显示任何内容。 在django中,我不记得有这个问题。 尽我所能,我假设我在渲染home.html而不是base.html,因此home.html可以使用base,但不能扩展到实际使用navigation.html的范围。 我不确定,我已经厌倦了将头伸到桌子上。

1 个答案:

答案 0 :(得分:1)

在这里做一个假设,所以请澄清我是否弄错了。

我怀疑您的意思是{% include 'navigation.html' %}中的index.html(以及所有需要该通用导航的其他页面)。

在这种情况下,您可以从{% extends ... %}中删除navigation.html