Flask框架從入門到精通之模板導入與繼承(十八)

知識點: 一、模板導入 二、模板繼承html

1、概況

模板導入就是將另外一個模板加載到當前模板中,直接渲染。模板繼承和類的繼承含義是同樣的,主要是爲了提升代碼重用,減輕開發人員的工做量。 典型應用:網站的頭部、尾部信息。python

2、模板導入

  • 語法
{% include(‘模板名稱’) %}

{% include(‘目錄/模板名稱’) %}
複製代碼
  • 使用
#導入頭部header.html
{% include 'header.html' %}
    主體內容
#導入底部footer.html
{% include 'footer.html' %}

#忽略模板文件不存在時的錯誤
{% include 'footer.html' ignore missing %}

#也能夠組成模板列表,會按照順序依次加載
{% include ['footer.html','bottom.html','end.html'] ignore missing %}

複製代碼
  • 注意:當include模板文件不存在時,程序會拋出異常,加上ignore missing關鍵字能夠忽略不存在時的異常.

3、模板繼承

若是發如今多個模板中某些內容相同,那就應該把這段內容定義到父模板中。 標籤block:用於在父模板中預留區域,留給子模板填充差別性的內容,名字不能相同。 爲了更好的可讀性,建議給endblock標籤寫上名字,這個名字與對應的block名字相同。父模板中也可使用上下文中傳遞過來的數據。瀏覽器

  • 父模板
{%block 名稱%}
預留區域,能夠編寫默認內容,也能夠沒有默認內容
{%endblock %}
複製代碼
  • 子模板
標籤extends:繼承,寫在子模板文件的第一行。
{% extends "父模板路徑"%}
複製代碼

子模版不用填充父模版中的全部預留區域,若是子模版沒有填充,則使用父模版定義的默認值。 填充父模板中指定名稱的預留區域。bash

{%block 名稱%}
實際填充內容
{%endblock %}
複製代碼

新建一個base.html寫以下代碼:網站

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>我是頭部</h1>

{% block content %}
    默認內容
{% endblock %}
<h1>我是尾部</h1>
</body>
</html>
複製代碼

新建一個extends.html繼承於base.htmlspa

{% extends 'base.html' %}

{% block content %}

    填充內容

{% endblock %}
複製代碼

咱們在瀏覽器調試一下: 調試

在這裏插入圖片描述

調用父模板

能夠經過super()來調用父模板內容code

{% extends 'base.html' %}

{% block content %}

    

    {{ super() }}

{% endblock %}
複製代碼

咱們在瀏覽器調試一下: cdn

在這裏插入圖片描述

歡迎關注個人公衆號:htm

image
相關文章
相關標籤/搜索