flask基礎之jinja2模板-流程控制
和其它編程語言一樣,jinja2也有流程控制。
一、測試
在jinja2,測試(Test)是根據變量或表達式的值生成布爾結果的一種函數工具,測試關鍵字is
{{ jinja2 is defined }}
或
{{ jinja2 is defined() }} #需要參數的測試,括號方式傳入。
eg:
number(value),檢查對象是否是一個數字
sequence(value),檢查對象是否是序列
string(value),檢查對象是否是字符串
undefined(value),檢查一個對象是否未定義
二、判斷語句
if...elif...else...endif
......
{% if A %}
...
{% elif B %}
...
{% else %}
{% endif %}
三、循環語句
{% for .. in ... %}
...
{% endfor %}
一些被重復執行的語句被稱為循環體,能否繼續重復決定了循環的終止條件
註:字典是無序的,所以可能需要把它作為一個已排序的列表傳入模板或使用dictsort過濾器
但,jinja模板中不能使用break或continue終止,怎麽辦?
可通過loop下的一一些特殊變量控制,如
loop.index,當前循環叠代多次數(從1開始)
loop.index(),當前循環叠代的次數(從0開始)
loop.revindex,到循環結束需要叠代的次數(從1開始)
loop.revindex(),到循環結束需要叠代的次數(從0開始)
loop.first,如果是第1次叠代,則為true
...
loop.length ,序列中農的項目數量
loop.cycle,在一串序列間取值的輔助函數
flask基礎之jinja2模板-流程控制