控制語句

jxxxh發表於2020-11-11

控制語句

  • 所有的控制語句都是放在{% … %}中,並且有一個語句{% endxxx %}來進行結束,Jinja中常用的控制語句有if/for…in…

  • if:if語句和python中的類似,可以使用>,<,<=,>=,==,!=來進行判斷,也可以通過and,or,not,()來進行邏輯合併操作

    {% if kenny.sick %}
       Kenny is sick.
    {% elif kenny.dead %}
     You killed Kenny!  You bastard!!!
    {% else %}
     Kenny looks okay --- so far
    {% endif %}
    
  • for…in…:for迴圈可以遍歷任何一個序列包括列表、字典、元組。並且可以進行反向遍歷

    • 普通的遍歷
      <ul>
          {% for user in users %}
              <li>{{ user }}</li>
          {% endfor %}
      </ul>
      
    • 遍歷字典
      <dl>
          {% for key, value in my_dict.items() %}
              <dt>{{ key }}</dt>
              <dd>{{ value }}</dd>
          {% endfor %}
      </dl>
      
    • 如果序列中沒有值的時候,進入else
      <ul>
          {% for user in users %}
              <li>{{ user.username }}</li>
          {% else %}
              <li><em>no users found</em></li>
          {% endfor %}
      </ul>
      
    • 並且Jinja中的for迴圈還包含以下變數,可以用來獲取當前的遍歷狀態
    變數描述
    loop.index當前迭代的索引(從1開始)
    loop.index0當前迭代的索引(從0開始)
    loop.first是否是第一次迭代,返回True或False
    loop.last是否是最後一次迭代,返回True或False
    loop.length序列的長度
    • 另外,不可以使用continue和break表示式來控制迴圈的執行。

相關文章