Jinja2条件控制

目录

描述

Jinja2条件控制语法

条件控制True/False场景

使用示例

1. 条件表达式的值是False

2. 条件表达式的值是None

3. 条件表达式的值为字符串

4. 条件表达式的值是数值型

5. 条件表达式的值是列表

6. 条件表达式的值是元组

7. 条件表达式的值是集合

8. 条件表达式的值是字典

总结

注意事项

1、HTML代码中不能包含Jinja2条件判断的注释(这应该算是Jinja2的一个bug)


描述

        Jinja2模板中的条件控制语句(if,elif,else)可以控制前端逻辑显示。

 

Jinja2条件控制语法

        Jinja2的条件控制与Python类似,但还是有一些不同:

{% if condition %}
    html code...
{% elif condition %}
    html code...
{% else %}
    html code...
{% endif %}

 其中elif和else可选,也可以出现elif任意次,这与Python用法相同。

条件表达式中可以使用not、and、or等关键字。

每个条件控制语句块结束后都要另起一行加上 {% endif %},否则服务器会报错500。

 

条件控制True/False场景

在Jinja2条件控制结构中,以下情况条件表达式结果为False:

  1. 条件表达式的值为False;
  2. 条件表达式的值为None;
  3. 条件表达式的值为空字符串;
  4. 条件表达式的值为数字0(整型0或浮点数0)
  5. 条件表达式的值为空列表;
  6. 条件表达式的值为空字典。

 

使用示例

1. 条件表达式的值是False

HTML代码 demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Jinja condition demo</title>
</head>
<body>
    {% if element %}
        <p>element value is true.</p>
    {% else %}
        <p>element value is false.</p>
    {% endif %}
</body>
</html>

Python脚本:

import flask

app = flask.Flask(__name__)

@ app.route("/")
def index():
    return flask.render_template("demo.html", element=False)

if __name__ == '__main__':
    app.run()

运行结果:

 

2. 条件表达式的值是None

html代码同上。

Python脚本:

import flask

app = flask.Flask(__name__)

@ app.route("/")
def index():
    return flask.render_template("demo.html")

if __name__ == '__main__':
    app.run()

运行结果:

3. 条件表达式的值为字符串

传入两个字符串,其中一个字符串为空串""。

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值