Django - 模板结构优化

接着 自定义模板过滤器 往下讲

一、引入模板

include 标签的使用

  • 新建 templates/header.html

    头部
  • 新建 templates/footer.html

    尾部
  • 修改 templates/index.html

    
    {% include 'header.html' %}
    
    内容
    {% include 'footer.html' %}

include 标签中的模板查找路径

参照 render_to_string的模板查找路径

include 标签引入的模板可以引用当前模板中的变量

  • 修改 front/views.py

    def index(request):
        context = {
            'title': 'Django'
        }
        return render(request, 'index.html', context=context)
    
  • 修改 templates/header.html

    {#头部 Django#}
    
    头部 {{ title }}
  • 但为了所有引用 templates/header.html 的模板都能使用 title 变量, 可以在 include 标签中传递该变量

    修改 templates/index.html

    {#头部 Young and Beautiful#}
    {% include 'header.html' with title='Young and Beautiful' %}
    

二、模板继承

  • 新建 templates/base.html

    
    {% include 'header.html' with title='Young and Beautiful' %}
    
    {% block content %} 默认内容 {% endblock %}
    {% include 'footer.html' %}
  • 修改 templates/index.html:

    {% extends 'base.html' %}
    
    {% block content %}
    首页中的内容
    {% endblock %}
    
  • 访问 block 标签被覆盖的内容:

    templates/index.html:

    {% extends 'base.html' %}
    
    {% block content %}
    首页中的内容
    

    {{ block.super }}

    {% endblock %}

你可能感兴趣的:(Django - 模板结构优化)