控制語句
所有的控制語句都是放在{% ... %}
中,并且有一個語句{% 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.username|e }}</li> {% endfor %} </ul>
-
遍歷字典:
<dl> {% for key, value in my_dict.iteritems() %} <dt>{{ key|e }}</dt> <dd>{{ value|e }}</dd> {% endfor %} </dl>
-
如果序列中沒有值的時候,進入
else
:<ul> {% for user in users %} <li>{{ user.username|e }}</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
表達式來控制循環的執行。
如果想深入學習Flask,可以觀看這套免費Flask教學視頻:Flask入門到項目實戰
</article>
版權聲明: https://blog.csdn.net/huangyong1314/article/details/74651384