• 模板继承


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

    • 多个模板具有完全相同的顶部和底部内容

    • 多个模板中具有相同的模板代码内容,但是内容中部分值不一样

    • 多个模板中具有完全相同的 html 代码块内容

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

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

     

    模板继承使用时注意点:

    1. 不支持多继承

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

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

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

    from flask import Flask,render_template
    
    app = Flask(__name__,  # 当前flask应用运行的模块
                template_folder="templates"
        )
    
    @app.route("/")
    def index():
        data = {}
        return render_template( "index6.html", **data )
    
    if __name__ == '__main__':
        app.run(debug=True)
    #index6.html
    {% extends "base.html" %}
    {% block title %}来自子模板的标题{% endblock title %}
    {% block hander %}
        <script>
        alert(1)
        </script>
    {% endblock hander %}
    
    {% block content %}
        {{ super() }}
        <p>子模板的内容</p>
        {{ super() }}
    {% endblock %}
    #bases.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}父级模板的内容{% endblock %}</title>
        {% block hander %}{% endblock hander %}
    </head>
    <body>
        {% block content %}
            <p>父级模板的content</p>
        {% endblock content %}
    </body>
    </html>
  • 相关阅读:
    验证码识别思路
    chrome插件 图片搜索(20130602更新版本v2.0)
    CoffeeScript实现BF解释器
    浏览器几种高度宽度
    javascript Event事件
    浮躁的心
    前端页面跨域访问
    firefox浏览器兼容event事件方法
    转:Java Annotation详解
    javascript void(0)问题【转】
  • 原文地址:https://www.cnblogs.com/zhangjiahao996/p/14021807.html
Copyright © 2020-2023  润新知