Flask框架模板繼承實(shí)現(xiàn)方法分析
本文實(shí)例講述了Flask框架模板繼承實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
在模板中,可能會遇到以下情況:
- 多個(gè)模板具有完全相同的頂部和底部內(nèi)容
- 多個(gè)模板中具有相同的模板代碼內(nèi)容,但是內(nèi)容中部分值不一樣
- 多個(gè)模板中具有完全相同的 html 代碼塊內(nèi)容
像遇到這種情況,可以使用 JinJa2 模板中的 繼承 來進(jìn)行實(shí)現(xiàn)
模板繼承是為了重用模板中的公共內(nèi)容。一般Web開發(fā)中,繼承主要使用在網(wǎng)站的頂部菜單、底部。這些內(nèi)容可以定義在父模板中,子模板直接繼承,而不需要重復(fù)書寫。
- 標(biāo)簽定義的內(nèi)容
{% block top %} {% endblock %}
- 相當(dāng)于在父模板中挖個(gè)坑,當(dāng)子模板繼承父模板時(shí),可以進(jìn)行填充。
- 子模板使用 extends 指令聲明這個(gè)模板繼承自哪個(gè)模板
- 父模板中定義的塊在子模板中被重新定義,在子模板中調(diào)用父模板的內(nèi)容可以使用super()
父模板代碼:
base.html
{% block top %} 頂部菜單 {% endblock top %} {% block content %} {% endblock content %} {% block bottom %} 底部 {% endblock bottom %}
子模板代碼:
- extends指令聲明這個(gè)模板繼承自哪
{% extends 'base.html' %} {% block content %} 需要填充的內(nèi)容 {% endblock content %}
模板繼承使用時(shí)注意點(diǎn):
- 不支持多繼承
- 為了便于閱讀,在子模板中使用extends時(shí),盡量寫在模板的第一行。
- 不能在一個(gè)模板文件中定義多個(gè)相同名字的block標(biāo)簽。
- 當(dāng)在頁面中使用多個(gè)block標(biāo)簽時(shí),建議給結(jié)束標(biāo)簽起個(gè)名字,當(dāng)多個(gè)block嵌套時(shí),閱讀性更好。
希望本文所述對大家基于flask框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python reshape的用法及多個(gè)二維數(shù)組合并為三維數(shù)組的實(shí)例
今天小編就為大家分享一篇Python reshape的用法及多個(gè)二維數(shù)組合并為三維數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python使用xlrd實(shí)現(xiàn)讀取合并單元格
這篇文章主要介紹了Python使用xlrd實(shí)現(xiàn)讀取合并單元格,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07python爬蟲自動(dòng)創(chuàng)建文件夾的功能
這篇文章主要介紹了python爬蟲自動(dòng)創(chuàng)建文件夾的功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08python使用 request 發(fā)送表單數(shù)據(jù)操作示例
這篇文章主要介紹了python使用 request 發(fā)送表單數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了Python基于requests模塊的表單數(shù)據(jù)發(fā)送操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09