django中模板继承操作:


模板继承

模板继承允许你建立一个基本的”骨架”模板, 它包含你所有最常用的站点元素 并 定义了一些可以被子模板覆盖的block.

这非常有用,例如各大门户网站左边一般有导航栏,在导航栏点击不同的区域时,只有中间<body>部分的内容更新了,而<body>标签之外的内容没有变。就像博客园一样


如何使用母模板和子模板?

{%blocktitle%}母模板的标题{%endblock%}{%blocktitle%}子模板的标题{%endblock%}{%blockcontent%}{%endblock%}{%blockcontent%}<p>子模板中的内容</p>{%endblock%}

模板一般是成对出现的,在母模板中定义好,在子模板中直接套用,只不过需要把

{%blocktitle%}母模板的标题{%endblock%}

{%blockcontent%}{%endblock%}

中间的内容换成子模板自己的内容即可。

下面看看具体怎么做:

母模板:

base.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>{%blocktitle%}母模板{%endblock%}</title></head><body><h2>Myhelpfultimestampsite</h2><h2>这行文字是继承母模板的!!!</h2>{%blockcontent%}{%endblock%}<hr><p>Thanksforvisitingmysite.</p><p>这行文字也是继承母模板的!!!</p></body></html>

子模板

{%extends"base.html"%}{%blocktitle%}子模板{%endblock%}{%blockcontent%}<tableborder="1"><thead><tr><th>姓名</th><th>邮箱</th><th>所属组</th></tr></thead><tbody>{%foruserindata%}<tr><td>{{user.Name}}</td><td>{{user.Email}}</td><td>{{user.group_list}}</td></tr>{%endfor%}</tbody></table>{%endblock%}