赞
踩
extends指继承父模板的框架,将里面的部分内容换成子模版需要的东西即可。
语法:{% extends ‘public/base.html’ %}
extends后面可加相对路径,也可使用变量
如:
page1.html:
{% extends 'public/base.html' %}
{% block title %}page1{% endblock %}
{% block content %}
这里是page1的content
{[message]}
{% endblock %}
{% block script %}
{% endblock %}
base.html:
{% block title %}base{% endblock %}{% block header %}
模板头部内容
{% endblock %}
{% block content %}
{% endblock %}
{% block body %}
模板主体内容
{% endblock %}
{% block footer %}
模板底部内容
{% endblock %}
{% block script %}
{% endblock %}
{% block style %}
{% endblock %}
这里的数据是固定不会被改变的
浏览器中的page1.html:
page1模板头部内容
这里是page1的content
{[message]}
模板主体内容
模板底部内容
这里的数据是固定不会被改变的
注意extends一定要写在最上方。
父模板base.html中定义的block块有几个子模版中就有几个,父模板中block名字自取,子模版可以重写父模板中的block,名字相同即可,但是子模版不能在block块之外写代码,父模板block之外的代码子模版只能得到不能修改。
子模版也可以在父模板的block中添加内容,如下:
{% block footer %}
{{ block.super }}
这里是子模版添加的内容
{% endblock %}
使用{{block.super}}告诉浏览器这一块是增加的内容,不是替换。
include
在Django的模板系统中,可以使用include这一语法:{% include ‘public/base2.html’ %}
include是指将后面引入的html文件中的所有代码都放到被引入文件的对应位置
include后面可加相对路径,也可使用变量
如:
page2.html:
page2{% include 'public/base2.html' %}
public/base2.html:
模板内容
message
导入后浏览器中的page2.html:
page2模板内容
message
可以看到base2.html被导入到了page2.html文件中,相当于代码复用。
extends主要用于同一主题的网页,网页之间的框架大体相同,include主要用于多个html中有相同的代码。
二者是可以一起使用的,这么看extends和include用处刚好是相反的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。