jinja2 提供了多種控制結構,可用來改變模板的渲染流程。本節使用簡單的例子介紹其中
最有用的控制結構。
下面這個例子展示了如何在模板中使用條件控制語句:
hello, }!
hello, stranger!
另一種常見需求是在模板中渲染一組元素。下例展示了如何使用 for 迴圈實現這一需求:
jinja2 還支援巨集。巨集類似於 python **中的函式。例如:
為了重複使用巨集,我們可以將其儲存在單獨的檔案中,然後在需要使用的模板中匯入:
需要在多處重複使用的模板**片段可以寫入單獨的檔案,再包含在所有模板中,以避免重複:
另一種重複使用**的強大方式是模板繼承,它類似於 python **中的類繼承。首先,建立乙個名為 base.html 的基模板:
block 標籤定義的元素可在衍生模板中修改。在本例中,我們定義了名為 head、title 和body 的塊。注意,title 包含在 head 中。下面這個示例是基模板的衍生模板:
index
}extends 指令宣告這個模板衍生自 base.html。在 extends 指令之後,基模板中的 3 個塊被重新定義,模板引擎會將其插入適當的位置。注意新定義的 head 塊,在基模板中其內容不是空的,所以使用 super() 獲取原來的內容。
3 13學習總結
貪心演算法 實質 直接去求每一步的最優解,通過若干次的貪心選擇,從而得到整個問題的最優解。不是整體上考慮問題,而是找區域性的最優解 利用貪心解題策略 判斷該題是否適用於貪心策略求解 如何選擇貪心標準,以得到問題的最優解 貪心的一般解題思路 1 候選集合a 2 解集合s 3 解決函式solution ...
Linux基礎指令 3 13
1 檔案搜尋 find find etc name 在目錄 etc中查詢檔案 size n 大於 n 小於 n 等於 在根目錄下查詢大於100mb的檔案 home user 根據使用者名稱查詢檔案 cmin 根據時間查詢修改過屬性的檔案和目錄 etc name exec 起乙個橋梁的作用 ls l ...
3 13 全域性可用變數
有些特殊變數和函式永遠存在於全域性中。3.13.1 區塊和交易屬性 區塊和交易屬性有如下幾項 block.blockhash uint blocknumber returns bytes32 給定區塊的雜湊值,只支援最近256個區塊。block.coinbase address 當前區塊礦工的位址。...