Flask學習筆記之模板(三)

大綱
我們都知道html模板中,很多內容都是有重複的,譬如前面的head和後面的footer部分,這裡的部分都是重複的,我們可以通過今天的學習的技術,減少程式碼的使用量,避免重複。
- 巨集
- include
- 模板繼承
巨集
巨集的使用方法很類似於函式的使用。首先我們新建一個html檔案。
{% macro test(fruit)%} <li>{{ fruit }}</li> {% endfor %}
這樣我們在index.html中就可以這樣來寫:
{% import 'macros.html' as macros %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>羅羅攀</title> </head> <body> <ul> {% for fruit in fruits %} {{ macros.test(fruit) }} {% endfor %} </ul> </body> </html>

include
大量重複程式碼,可以使用include方法,我們新建一個common.html檔案,用於存放共有程式碼。
<div> <a href="#">首頁</a> <a href="#">詳情頁</a> <a href="#">個人中心</a> </div>
然後在index.html就可以使用:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>羅羅攀</title> </head> <body> {% include 'common.html' %} </body> </html>

模板繼承
在大型網站中,常用到模板繼承。我們首先新建一個base.html檔案。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>羅羅攀</title> </head> <body> <div> <a href="#">首頁</a> <a href="#">詳情頁</a> <a href="#">個人中心</a> </div> {% block body %}{% endblock %} </body> </html>
然後在index中,就可以少寫很多程式碼了。
{% extends 'base.html' %} {% block body %} <h1>hello</h1> {% endblock %}
