Flask学习之旅——2.3 控制语句

Flask学习之旅——2.3 控制语句

前言

控制语句

所有的控制语句都是放在{% ... %}中,并且有一个语句{% endxxx %}来进行结束,Jinja中常用的控制语句有if/for..in..

if语句

Jinja中的if语句和python中的的if语句类似,可以使用>,<,<=,>=,==,!=来进行判断,也可以通过and,or,not,()来进行逻辑合并操作。

栗子

{% if age > 18 %}
	<div>您已成年!</div>
{% elif age < 18 %}
    <div>你的内容</div>
{% else %}
	<div>你的内容</div>
{% endif %}  

(注意:在使用if语句时,结尾处需要加上{% endif %})

测试器

测试器主要用来判断一个值是否满足某种类型,并且这种类型一般通过普通的if判断是有很大的挑战的。语法是:if...is...,先来简单的看个栗子:

{% if variable is escaped %}  //判断变量的值是否被转义
	变量被转义了,value of variable: {{ escaped }} 
{% else %}
    变量未被转义
{% endif %}

以上判断variable这个变量是否已经被转义了。

Jinja中内置了许多的测试器,如下表所示:

测试器说明
callable(object)是否可调用
defined(object)是否已经被定义了。
escaped(object)是否已经被转义了。
upper(object)是否全是大写。
lower(object)是否全是小写。
string(object)是否是一个字符串。
sequence(object)是否是一个序列。
number(object)是否是一个数字。
odd(object)是否是奇数。
even(object)是否是偶数。

for循环

for循环可以遍历任何一个序列包括列表、字典、元组。并且可以进行反向遍历。

(注意:不可以使用continuebreak表达式来控制循环的执行。)

  • 普通的遍历:

    <ul>
    {% for user in users %}
    	<li>{{ user }}</li>
    {% endfor %}
    </ul>
    
  • 遍历字典:

    <dl>
    {% for key, value in dict.items() %}
    	<dt>{{ key }}</dt>
    	<dd>{{ value }}</dd>
    {% endfor %}
    </dl>
    
  • 如果序列中没有值的时候,进入else

    <ul>
    {% for user in users %}
    	<li>{{ user }}</li>
    {% else %}
    	<li>no users found</li>
    {% endfor %}
    </ul>
    

并且Jinja中的for循环还包含以下变量,可以用来获取当前的遍历状态:

变量描述
loop.index当前迭代的索引(从1开始)
loop.index0当前迭代的索引(从0开始)
loop.first是否是第一次迭代,返回True或False
loop.last是否是最后一次迭代,返回True或False
loop.length序列的长度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来程序猿小吕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值