最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flask模板繼承深入理解與應用

 更新時間:2022年09月06日 14:55:24   作者:weixin_42576837  
Flask中的模板可以繼承,通過繼承可以把模板中許多重復出現(xiàn)的元素抽取出來,放在父模板中,并且父模板通過定義block給子模板開一個口,子模板根據(jù)需要,再實現(xiàn)這個block

什么叫模板繼承呢

在我的理解就是:在前端頁面中肯定有很多頁面中有很多相同的地方,比如頁面頂部的導航欄,底部的頁腳等部分,這時候如果每一個頁面都重寫一遍,會很麻煩,而且也沒必要。

這時候就可以做一個模板,叫做父模板,里面放上相同的部分,不同的部分先使用其他東西占位,然后在不同的頁面中,繼承這個父模板,不同的部分填充不同的內(nèi)容。

模板頁

首先做一個模板頁面,模板是這樣子的:

上下都是不變的東西,中間的部分是不同的,不同的頁面繼承這個模板頁,然后在中間填充不同的內(nèi)容。

導航欄的兩個超鏈接:

<li><a href="/" rel="external nofollow"  rel="external nofollow"  >首頁</a></li>
<li><a href="/about" rel="external nofollow"  rel="external nofollow"  >關于我們</a></li>

注意:這里的跳轉路徑是指定到某一個路由,不是某一個html頁面。

相同部分的代碼就是普通的html代碼,只有需要填充的區(qū)域代碼寫法不同:

首先是標題title,其他頁面需要繼承模板頁,所以模板頁的標題不能寫死,而是需要動態(tài)變化的,所以需要先用一個block占位:

寫法是這樣的,title標簽中間的內(nèi)容由一個block占著,這個block叫做title,名字可以隨意,后面會根據(jù)名字選擇block來填充。

<title>{% block title %}{% endblock %}</title>

然后是中間區(qū)域:

<div style="background-color:silver;height: 300px;width: 500px;margin: 10px">
不同的部分
<!--中間是不同的部分,用block先占著-->
{% block body %}
{% endblock %}
</div>

這里也有一個block,叫做body。注意:每一個block都需要一個{% endblock %}作為block的結束位置。

完整代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--不同頁面的標題不一樣,所以需要占位符,里面的title是名稱,可以隨意-->
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
<!--相同的部分,導航欄-->
<div style="background-color: beige;height: 200px;width: 300px">
    相同的導航欄
<ul>
    <li><a href="/" rel="external nofollow"  rel="external nofollow"  >首頁</a></li>
    <li><a href="/about" rel="external nofollow"  rel="external nofollow"  >關于我們</a></li>
</ul>
</div>
<div style="background-color:silver;height: 300px;width: 500px;margin: 10px">
<p>不同的部分</p>
<!--中間是不同的部分,用block先占著-->
{% block body %}
{% endblock %}
</div>
<!--相同的部分,頁腳-->
<div style="background-color: burlywood;height: 100px;width: 200px">
    <footer style="background-color: darkgray">相同的頁腳部分</footer>
</div>
</body>
</html>

繼承模板的頁面:index.html

現(xiàn)在新建一個頁面:index.html,它繼承之前的模板頁面:

由于是繼承了父模板,所以首先要指定這個模板繼承哪一個模板。{% extends '模板.html' %},表示繼承叫做模板.html的頁面。然后分別指定不同的block中填充不同的內(nèi)容。

<!--繼承哪一個模板-->
{% extends '模板.html' %}
<!--指定不同的內(nèi)容,指定叫做title的block中的內(nèi)容-->
{% block title %}
    繼承了模板頁的 首頁
{% endblock %}
<!--指定叫做body的block中的內(nèi)容-->
{% block body %}
    <p>首頁中的內(nèi)容</p>
{% endblock %}

這個頁面對應的路由是/,對應的視圖函數(shù)是:

#根路徑,渲染index.html頁面
@app.route('/')
def index():
    return render_template('index.html')

繼承模板的頁面:about.html

首先about頁面對應的路由時/about,對應的視圖函數(shù):

#/about路徑,渲染about.html頁面
teams = ['小明','小紅','小剛']
@app.route('/about')
def about():
#以關鍵字參數(shù)的形式把teams傳遞到about.html頁面中
    return render_template('about.html',teams = teams)

這里我們傳遞一個列表過去,在about.html頁面中加載出來。

about.html

{% extends '模板.html' %}
{% block title %}
繼承模板頁的 about頁面
{% endblock %}
{% block body %}
<p>about頁面中的內(nèi)容</p>
    <p>
        我們的團隊成員有:
        {% for name in teams %}	#拿到傳遞的參數(shù)列表,遍歷
            <li>{{ name }}</li>
        {% endfor %}
    </p>
{% endblock %}

對應的py文件:模板繼承練習.py

from flask import  Flask,render_template
app = Flask(__name__,template_folder='../templates')
#根路徑,渲染index.html頁面
@app.route('/')
def index():
    return render_template('index.html')
#/about路徑,渲染about.html頁面
teams = ['小明','小紅','小剛']
@app.route('/about')
def about():
    return render_template('about.html',teams = teams)
if __name__ == '__main__':
    app.run()

執(zhí)行效果如下:

到此這篇關于Flask模板繼承深入理解與應用的文章就介紹到這了,更多相關Flask模板繼承內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python中Playwright?與?pyunit?結合使用詳解

    Python中Playwright?與?pyunit?結合使用詳解

    這篇文章主要介紹了Python中Playwright?與?pyunit?結合使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Pytorch 卷積中的 Input Shape用法

    Pytorch 卷積中的 Input Shape用法

    這篇文章主要介紹了Pytorch 卷積中的 Input Shape用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python利用datetime模塊計算時間差

    python利用datetime模塊計算時間差

    python中通過datetime模塊可以很方便的計算兩個時間的差,datetime的時間差單位可以是天、小時、秒,甚至是微秒,下面我們就來詳細看下datetime的強大功能吧
    2015-08-08
  • Python的Flask框架中配置多個子域名的方法講解

    Python的Flask框架中配置多個子域名的方法講解

    Fask中可以通過通配符子域的方式來部署多個子域名,這里我們就來作一個Python的Flask框架中配置多個子域名的方法講解,需要的朋友可以參考下
    2016-06-06
  • python實現(xiàn)簡單的購物程序代碼實例

    python實現(xiàn)簡單的購物程序代碼實例

    這篇文章主要介紹了python實現(xiàn)簡單的購物程序代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Python實現(xiàn)CAN報文轉換工具教程

    Python實現(xiàn)CAN報文轉換工具教程

    這篇文章主要介紹了Python實現(xiàn)CAN報文轉換工具教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python的Tornado?Web框架深入解析

    Python的Tornado?Web框架深入解析

    這篇文章主要為大家介紹了Python的Tornado Web框架的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 一篇文章帶你了解python標準庫--os模塊

    一篇文章帶你了解python標準庫--os模塊

    在本篇內(nèi)容里小編給大家整理的是關于Python中os模塊及用法相關知識點,有興趣的朋友們可以學習下,希望能給你帶來幫助
    2021-08-08
  • python去除字符串中的空格、特殊字符和指定字符的三種方法

    python去除字符串中的空格、特殊字符和指定字符的三種方法

    本文主要介紹了python去除字符串中的空格、特殊字符和指定字符的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • django中send_mail功能實現(xiàn)詳解

    django中send_mail功能實現(xiàn)詳解

    這篇文章主要給大家介紹了關于django中send_mail功能實現(xiàn)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02

最新評論

武宁县| 城步| 宁远县| 揭阳市| 林甸县| 惠安县| 焦作市| 贵南县| 运城市| 宁都县| 府谷县| 哈巴河县| 华蓥市| 嵩明县| 南通市| 莱阳市| 浦江县| 武陟县| 闵行区| 西峡县| 鄂州市| 大石桥市| 伊春市| 天水市| 彰化市| 久治县| 阳江市| 西乡县| 大埔区| 寻乌县| 高陵县| 白山市| 屯昌县| 鹤壁市| 盖州市| 龙胜| 都昌县| 区。| 随州市| 通州区| 阳朔县|