当前位置 博文首页 > Flask中jinja2的继承实现方法及实例

    Flask中jinja2的继承实现方法及实例

    作者:小妮浅浅 时间:2021-07-18 17:49

    在继承的使用上,我们最早接触的是父类和子类的继承。不过Flask框架中的继承要简单一些,只要有一个原文件,便可以对其进行继承和修改的操作了。在修改的内容方面,可以通过关键字来进行实现。下面我们就Flask中jinja2的继承的实现先进行理论的介绍,然后带来实例供大家练习。

    1、说明

    Jinja2中最强大的部分是模板继承。通过模板继承,我们可以创建一个基本(框架)文件,其他文件可以从中继承,然后再根据需要对其进行修改。

    在jinja2的框架文件中,使用block关键字表示它包含的内容可以被修改。

    2、实例

    <!DOCTYPE html>
    <html>
    <head>
      {% block head %}
      <link rel="stylesheet" href="style.css" rel="external nofollow" />
      <title>{% block title %}{% endblock %} - My Webpage</title>
      {% endblock %}
    </head>
    <body>
    <div >{% block content %}{% endblock %}</div>
    <div >
      {% block footer %}
      <script>This is javascript code </script>
      {% endblock %}
    </div>
    </body>
    </html>

    这里定义了四处 block,即:head,title,content,footer。那怎么进行继承和变量替换呢?注意看下面的文件

    {% extend "base.html" %}    # 继承base.html文件
    {% block title %} Dachenzi {% endblock %}  # 定制title部分的内容
    {% block head %}
    {
    { super() }}    # 用于获取原有的信息
    <style type='text/css'>
    .important { color: #FFFFFF }
    </style>
    {% endblock %}  
    # 其他不修改的原封不同的继承

    实例扩展:

    jinja2模板继承

    父亲:

    <!DOCTYPE html>
    <html>
    <head>
     <title>模板继承</title>
    </head>
    <body>
     <span>这是基模板</span>
     <div >{% block content %}{% endblock %}</div>
    </body>
    </html>
    
    

    用{% block content %}{% endblock %}包含jinja2的字模板块;

    子:

    <!DOCTYPE html>
    <html>
    <head>
     <title>模板继承</title>
    </head>
    <body>
     {% extend "jinja2_模板继承.html"%}
     {% block content %}
     <p class="importtant">我在子模板</p>
    </body>
    </html>
    
    

    {% extends "jinja2_模板继承.html"%}标签是这里的关键,告诉模板引擎这个模板继承自另外一个模板。该标签必须是子模板的第一个标签,解释器会自动将父亲的内容复制到子模板中!

    结果应该是这样:

    <!DOCTYPE html>
    <html>
    <head>
     <title>模板继承</title>
    </head>
    <body>
     <span>这是基模板</span>
     <div >
       <p class="importtant">我在子模板</p>
      </div>
    </body>
    </html>
    
    
    jsjbwy
    下一篇:没有了