模板继承流程

  1. 新建一个模板,在需要变化的地方加上 block 标签。每个block标签不能同名,可以有多个!

    1. {% block contents %}
    2. 母版页面
    3. {% endblock %}
  2. 引入模板

    1. {% extends "muban.html" %} # 引入模板文件
    2. {% block contents %}
    3. {{ block.super }} # 继承了模板文件中的 block标签里的内容 显示结果 母版页面 模板内容---cd1
    4. 模板内容---cd1 # 重写了模板文件中的block标签里的内容 显示结果 模板内容---cd1
    5. {% endblock %}

    1. 新建模板页面

    ```html <!DOCTYPE html>

  • 菜单1
  • {# 这里是跳转到的菜单页超链接 #}
{% block contents %} # 钩子 母版页面 # 里面的内容可以重写 {% endblock %}

{% block js %}

{% endblock %}

  1. <a name="ayE2V"></a>
  2. ## 2. 新建菜单页并继承模板内容
  3. ```html
  4. {% extends "muban.html" %} {# 继承模板 #}
  5. {% block contents %} {# 钩子名称要一一对应 #}
  6. {{ block.super }}
  7. 模板内容---cd1
  8. {% endblock %}

3. views定义视图逻辑

  1. def base(request):
  2. return render(request,'muban.html')
  3. def cd1(request):
  4. return render(request,'cd1.html')

4. urls 定义转发路径

  1. def base(request):
  2. return render(request,'muban.html')
  3. def cd1(request):
  4. return render(request,'cd1.html')

5. 验证

  • 模板页面

image.png

  • 直接重写钩子中的内容

image.png

  • 使用了block.super方法,继承了标签的内容

image.png