jinja2 巨集的簡單使用總結 macro

2021-09-07 11:41:08 字數 1131 閱讀 9906

5. 參考文件

jinja2是python的模板引擎, 在寫python web使用的過程中,發現macro可以節省大量的**.所以做了乙個小的總結.

用法基本上都是網上的文章. 自己主要是寫了注意事項,也算是心得體會.

巨集類似常規程式語言中的函式。它們用於把常用行為作為可重用的函式,取代 手動重複的工作。 例子:

在命名空間中,巨集之後可以像函式一樣呼叫:

}

}

如果巨集在不同的模板中定義,你需要首先使用 import

varargs

如果有多於巨集接受的引數個數的位置引數被傳入,它們會作為列表的值儲存在 varargs 變數上。

kwargs

同 varargs ,但只針對關鍵字引數。所有未使用的關鍵字引數會儲存在 這個特殊變數中。

caller

如果巨集通過 call 標籤呼叫,呼叫者會作為可呼叫的巨集被儲存在這個 變數中。

巨集也可以暴露某些內部細節。下面的巨集物件屬性是可用的:

name

巨集的名稱。 } 會列印 input 。

arguments

乙個巨集接受的引數名的元組。

defaults

預設值的元組。

catch_kwargs

如果巨集接受額外的關鍵字引數(也就是訪問特殊的 kwargs 變數),為 true 。

catch_varargs

如果巨集接受額外的位置引數(也就是訪問特殊的 varargs 變數),為 true 。

caller

如果巨集訪問特殊的 caller 變數且由 call 標籤呼叫,為 true 。

引數變數

module變數

call 的變數

這個和其他的語言比如c語言的macro是很大的不同. 你在模組中想讓macro引用自身的變數是不能實現的.

macro的出現,本質是想解決重複**的問題. 和block相比,因為不能使用module中的引數,也就是說和block是 相輔相成的關係. 不存在互相覆蓋的問題.

macro 的重心在於替換簡單的重複性質的**.

block 的重心在於重複框架**的替換.

模板設計者文件

jinja2 巨集的簡單使用總結 macro

5.參考文件 jinja2是python的模板引擎,在寫python web使用的過程中,發現macro可以節省大量的 所以做了乙個小的總結.用法基本上都是網上的文章.自己主要是寫了注意事項,也算是心得體會.巨集類似常規程式語言中的函式。它們用於把常用行為作為可重用的函式,取代 手動重複的工作。例子...

jinja2 巨集的簡單使用總結 macro

5.參考文件 jinja2是python的模板引擎,在寫python web使用的過程中,發現macro可以節省大量的 所以做了乙個小的總結.用法基本上都是網上的文章.自己主要是寫了注意事項,也算是心得體會.巨集類似常規程式語言中的函式。它們用於把常用行為作為可重用的函式,取代 手動重複的工作。例子...

Jinja2模板簡單使用

目錄 jinja2與flask jinja2模板簡單使用示例 jinja2是python中乙個被廣泛應用的模板引擎。它基於unicode並能在python2.4之後的版本執行。flask使用jinja2作為框架的模板系統。1.所有檔案都應放在templates目錄中。template目錄與pytho...