參考
}
——訪問變數或變數的屬性
——注釋
——匯入另外乙個模板到當前模板中
——匯入模板,與上面的有部分不同
——繼承模板
}
——訪問static資料夾中的檔案
建立乙個包含有所有公共元素的頁面基本骨架,在子模板中可以重用這些公用的元素。
//我們首先寫乙個名為"base.html"的模板,它包含下面的內容:
lang="en">
xmlns="">
rel="stylesheet"
href="style.css" />
- my webpagetitle>
head>
id="content">
div>
id="footer">
href="">youa>.
div>
body>
在這個模板中有很多』block』, 這些block中間的內容,我們將會在子模板中用其它內容替換。
//我們再寫乙個名為"child.html"的模板,內容如下:
index
}type="text/css">
.important
style>
indexh1>
class="important">
welcome on my awsome homepage.
p>
——這個模板將繼承base.html.
在隨後的內容中包含了很多跟base.html中相同的block,如title,content,這些block中的內容將會替換 base.html的內容後輸出.
:extends模板名稱
的寫法依賴於此模板使用的模板載入器, 比如如果要使用filesystemloader,你可以在模板檔名中加入檔案的資料夾名,如:在base.html中,我們定義了
,這個block在子模板中沒有被重定義,那麼jinja會直接使用父模板中的內容輸出。
同乙個模板中不能定義名稱相同的block。
如果你要在模板中多次列印同乙個block,可以用self變數加上block的名字:
如果要在子模板中重寫父模板的block中列印被重寫的block的內容,呼叫super關鍵字。
title>
}h1>
...
}
你可以傳遞python的變數給模板,用來替換模板中的標記。這些變數可以是任何python物件。在模板中可以直接操作傳入的變數物件,也可以 訪問這些變數的屬性。訪問變數屬性有兩種方式,一種是用」obj.attr」的方式,另一種是類似字典的方式:」obj[『attr』]」.
注意,上面的}是jinja的用來列印變數標記。如果要在其它標籤中訪問變數,則不能在變數名旁邊加花括號。}}
jinja中的控制標記包括:條件判斷標記(if/elif/else),迴圈控制(for-loop),另外還有macro(巨集)和上文中提到 的block。for
//for 迴圈列印乙個序列,例如:
membersh1>
}li>
ul>
在迴圈內部,你可以訪問一些特殊的變數variable
description
loop.index
當前迭代的索引,從1開始算
loop.index0
當前迭代的索引,從0開始算
loop.revindex
相對於序列末尾的索引,從1開始算
loop.revindex0
相對於序列末尾的索引,從0開始算
loop.first
相當於loop.index == 1
loop.last
相當於loop.index == len(seq) - 1
loop.length
序列的長度
loop.cycle
是乙個幫助性質的函式,可以接受兩個字串引數,如果當前迴圈索引是偶數,則顯示第乙個字串,是奇數則顯示第二個字串。它常被在**中用來用不同的背景色區分相鄰的行
class="
}">
}li>
需要注意的是,jinja的迴圈不支援break和continue標記。你可以對需要迭代的sequence使用過濾器來達到與break和 continue相同的目的。ifjinja的for語句有乙個和python相同的用法,那就是「else』:當無迴圈時顯示else中的內容,如下例://下面的例子中,如果user.hidden屬性為true的則continue
}li>
}li>
no users foundem>
li>
ul>
if語句用來在jinja中做比較判斷,比較常見的用法是判斷乙個變數是否已定義,是否非空,是否為true
}li>
ul>
Jinja 2模板引擎
flask 提供了jiaja 2模板引擎渲染模板,下面逐步介紹其模板渲染機制。index.html lang en charset utf 8 這是首頁中文字 title 這是首頁中文字 h1 head body html user.html lang en charset utf 8 這是使用者中...
Jinja2模板引擎
檢視函式的主要作用是生成請求的響應,這是最簡單的請求。實際上,檢視函式有兩個作用 處理業務邏輯和返回響應內容。在大型應用中,把業務邏輯和表現內容放在一起,會增加 的複雜度和維護成本。本節學到的模板,它的作用即是承擔檢視函式的另乙個作用,即返回響應內容。使用模板的好處 兩個概念 渲染模版函式 使用 變...
Jinja 2 模板引擎 2
說明 巨集和python中的函式類似,可以傳遞引數。但是不能有返回值,可以把經常用到的 片段放在巨集中,然後把一些不固定的值抽出來作為乙個變數。巨集的定義 巨集的呼叫 示列 1.建立乙個index 1。html檔案 使用者名稱 密碼 登入 2。建立乙個 py檔案 from flask import ...