flask中jinjia2模板引擎使用詳解4

2021-08-16 08:41:38 字數 2314 閱讀 2445

接上文

for迴圈

和其它程式語言一樣,for用來編輯列表中的項。下面以乙個例子來說明for在flask的jinjia2模板中的使用。

建立乙個模板list.html

**如下:

<li>}li>

在code.py中新增url規則

)defrenderlist():

users = ["zhang san","li si","wang wu"]returnrender_template("list.html",users = users)

執行效果如下:

變數

描述

loop.index

當前迴圈迭代的次數(從

1 開始)

loop.index0

當前迴圈迭代的次數(從

0 開始)

loop.revindex

到迴圈結束需要迭代的次數(從

1 開始)

loop.revindex0

到迴圈結束需要迭代的次數(從

0 開始)

loop.first

如果是第一次迭代,為

true

。loop.last

如果是最後一次迭代,為

true

。loop.length

序列中的專案數。

loop.cycle

在一串串行間期取值的輔助函式。見下面的解釋。

我們以上面的例子來說明其中幾個變數的使用

<li>},"first:"},"last:"},"length:"},"index:"},"index0:"},"revindex:"},"revindex0:"},"cycle:"}li>

執行效果:

通過if內聯過濾來篩選資料

jinjia2模板中的迴圈不支援break和continue語法。

可以通過if內聯過濾來篩選資料,舉例:

<h1>長度大於6的:h1>

<li>},"first:"},"last:"},"length:"},"index:"},"index0:"},"revindex:"},"revindex0:"},"cycle:"}li>

執行效果:

li si因長度小於6,未被顯示出來

使用else來處理空列表

當乙個for迴圈的資料來源為空時,可以用else進行替換方案顯示,比如我們for乙個不存在的物件items,然後用else作判斷:

<h1>空列表h1>

<li>}li>

<li>未找到資料li>

執行效果:

遞迴呼叫for迴圈

通過在for中使用recursive

關鍵字,並且在需要遞迴的地方使用loop方法就可以實現遞迴呼叫for迴圈

引用官方的例子如下:

flask之jinjia2模板語言

flask jinjia2.py 1 2 flask中的jinjia2模板語言 和django中模板類似 3 1 模板變數 45 2 模板標籤 6 for迴圈遍歷78 910 if.else判斷 1112 13 14.1516 17 18 3 模板繼承,配合模板中定義的block重寫需要改動的部分 ...

flask中jinjia2模板引擎使用詳解2

接上文 注釋的使用 在jinjia2模板中,使用進行 注釋,如下所示 執行後發現,注釋不會被render出來 去掉空行 兩種方法可以去掉jinjia2模板中的空白行,一是設定jinjia2的環境變數,如下 另一種是通過在模板的邏輯塊中新增 號 h1 hello h1 h1 name is numbe...

Ansible中的jinjia2模板

jinjia模板是在ansible中建立的一類模板檔案,通常以.j2結尾標識。模板的內容含有多個變數,使原本固定的某個檔案配置,通過引數的改變,變得可以復用,提高了使用效率。模板的組成 模板一般由多個元素組成,包含 資料 變數 表示式 變數 通常在play中的vars中進行標識,表示式為 表示式或者...