美文网首页
Flask——模板继承

Flask——模板继承

作者: Gavininn | 来源:发表于2019-05-30 15:24 被阅读0次

    在模板中,可能会遇到以下情况:

    • 多个模板具有完全相同的顶部和底部内容
    • 多个模板中具有相同的模板代码内容,但是内容中部分值不一样
    • 多个模板中具有完全相同的 html 代码块内容

    像遇到这种情况,可以使用 JinJa2 模板中的 继承 来进行实现

    模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。

    • 标签定义的内容
    {% block top %} {% endblock %}
    
    • 相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。
    • 子模板使用 extends 指令声明这个模板继承自哪个模板
    • 父模板中定义的块在子模板中被重新定义,在子模板中调用父模板的内容可以使用super()

    父模板代码:

    base.html

    {% block top %}
      顶部菜单
    {% endblock top %}
    
    {% block content %}
    {% endblock content %}
    
    {% block bottom %}
      底部
    {% endblock bottom %}
    

    子模板代码:

    • extends指令声明这个模板继承自哪
    {% extends 'base.html' %}
    {% block content %}
     需要填充的内容
    {% endblock content %}
    

    模板继承使用时注意点:

    1. 不支持多继承

    2. 为了便于阅读,在子模板中使用extends时,尽量写在模板的第一行。

    3. 不能在一个模板文件中定义多个相同名字的block标签。

    4. 当在页面中使用多个block标签时,建议给结束标签起个名字,当多个block嵌套时,阅读性更好。

    相关文章

      网友评论

          本文标题:Flask——模板继承

          本文链接:https://www.haomeiwen.com/subject/fmlvtctx.html