2015-04-01 44 views
0

我想知道如何创建一个jinja2模板,这将允许我把我的头放入一个变量,我可以扩展基本文件,然后调用我的头文件子文件。如何创建一个头文件可以被添加到文件瓶

目前我父代码:

{% block head %} 
<div class="wrapper col2"> 
    <div id="topbar"> 
    <div id="topnav"> 
     <ul> 

      <ul> 
     <li><a href="/">Home</a></li> 

     <li><a href="sign-up">Sign in/up</a></li> 
     <li><a href="#">Admin console</a> 
      <ul> 
      <li><a href="/WelcomeAdmin/">Console</a></li> 
      <li><a href="staffman">Staff Management</a></li> 
      <li><a href="AlertConsole">ALERTS</a></li> 
      <li><a href="shootersign">Sign up Shooters</a></li> 
      </ul> 
     </li> 

     <li ><a href="contact-us">Contact Us</a></li> 
      <li class="last"><a href="/Logout">logout</a></li> 
     </ul> 
    </div> 
    <br class="clear" /> 
    </div> 
     <hr> 
    {% with messages = get_flashed_messages() %} 
     {% if messages %} 
     <ul> 
     {% for message in messages %} 
      <li>{{ message }} </li> 
     {% endfor %} 
     </ul> 
     {% endif %} 
    {% endwith %} 

</div> 
{% endblock %} 

我的孩子模板是:

{% extends "Header.html" %} 
{% block head %} 
{% endblock %} 
<h1>CREATE SHOOT</h1> 

<form action="" method="post" name="form"> 
     {{ form.hidden_tag() }} 
     <p> 
      <h2>Name of shoot:</h2> 
      {{ form.nameofshoot(size=40) }}<br> 
    <h2>Number of days in shoot:</h2> 
      {{ form.day}} 
     <p><input type="submit" value="Create Shoot"></p> 
    </form> 

我做得不对或有另一种方法,我可以走?

回答

3

你需要做的是从你的孩子模板中删除线{% block head %}{% endblock %}

因为你叫{% extends "Header.html" %},都在header.html中声明的内容(无论是在什么块)您的孩子在模板会有什么样自动包含。这是扩展的工作。

通过在您的子模板中添加{% block head %}{% endblock %},您实际上所说的是“从Header.html中获取所有内容,但用我在子模板中指定的内容覆盖'head'块中的所有内容。然后,由于您的子模板中没有定义任何内容,因此您将Header.html文件中定义的内容替换为空。

您想使用{% block blockname %}表示法来指定您想要在子模板中更改的内容,而不是您希望保持相同的内容。

This page on inheritence是Jinja文档的相关部分,并提供了一个很好的示例。

+0

现在我定义的html不起作用,它就像一个图像,但不是图像 – 2015-04-02 00:08:58

+0

对不起,您的评论对我来说没有意义。 “就像一个形象,但不是一个形象”?这是不是一个不同的问题? – Aurora 2015-04-02 00:13:11

+0

不,它是相同的问题,但更新代码后,我的表单现在不再是作为表单使用,而是与其中的图像类似,不是交互式的。我正在谈论的HTML是在**子模板** – 2015-04-02 00:15:25

相关问题