Django(Templates)模板继承

模板继承:
views.py

def get_indexs(request):
#设置页面title名字,用字典的方式处理
    return render(request, 'home.html',context={"title":"home"})
<title>{ {title}}</title>

block标签:用来规划结构布局
首次出现,代表规划
二次出现,代表填充以前的规划
三次出现,代表填充以前的规划,默认动作是覆盖,如果不想覆盖,可以添加{ { block.super }},这样就实现了增量式操作。
a.html
{% block header %}

{% endblock %}

{% block banner %}

{% endblock %}

{% block content %}

{% endblock %}

{% block footer %}

{% endblock %}

b.html
extends标签:继承已有模板,可以获取父模板的所有结构
#使用继承方法extends继承于base.html
{% extends 'base.html' %}
{% block header %}
    <div>这是一个调用</div>
{% endblock %}

c.html
include:包含的意思,可以将页面作为一个模块,嵌入到其它页面中

{% extends 'home.html' %}

{% block content %}
    <h3>这里是内容</h3>
{% endblock %}

{% block header %}
    { { block.super }}
    <h3>111111</h3>
{% endblock %}

{% block footer %}
    {% include 'footer.html' %}
{% endblock %}


d.html
aaaaaaaaaaaaaa

建议用block+extends做,因为include页面时间加载慢。
如果我们继承自一个父模板,子模板自己直接重写页面结构是不生效的,只能在已有的里面进行填充。

猜你喜欢

转载自blog.csdn.net/vlking/article/details/105310510