1. 程式人生 > >flask基礎之jinja2模板-流程控制

flask基礎之jinja2模板-流程控制

編程 cts bre 數量 表達式 else 怎麽 多次 結果

和其它編程語言一樣,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模板-流程控制