Flask之模板继承

Flask之模板继承

1 什么是模板继承

模板继承是jinja里面最有力的部分了。就相当于在模板里面创建一个基础的骨架,里面的内容一般是一个网站中的常用元素,比如说网页的头部与尾部。这样下次需要用的话我们直接继承就好了。

2 基础模板

我们来新建一个 base.html,它定义了一个简单的 HTML 骨架,用 于显示一个简单的两栏页面。“子”模板的任务是用内容填充空的块:

<!DOCTYPE html>

<html lang="en">

<head>

    {% block head %}

    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">

    <title>{% block title %}{% endblock %} - My Webpage</title>

    {% endblock %}

</head>

<body>

    <div id="content">{% block content %}{% endblock %}</div>

    <div id="footer">

      {% block footer %}

      &copy; Copyright 2010 by <a href="http://www.baidu.com/">you</a>.

      {% endblock %}

    </div>

</body>

</html>

在这个例子中,{% block %}定义了几个可以被子模版填充的地方。接下来我们来写几个子模版:

{% extends "test01.html" %}

{% block title %}Index{% endblock %}

{% block head %}

  {{ super() }}

  <style type="text/css">

    .important { color: #336699; }

  </style>

{% endblock %}

{% block content %}

  <h1>hello</h1>

  <p class="important">

    欢迎您

{% endblock %}


效果如下:

这里 {% extends %} 标记是关键,它告诉模板引擎这个模板“扩展”了另一个模板, 当模板系统评估这个模板时会先找到父模板。这个扩展标记必须是模板中的第一个标记。 如果要使用父模板中的块内容,就要使用 {{ super() }} 。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值