Python的Django框架中if标签的相关使用


Posted in Python onJuly 15, 2015

{% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即,变量存在,非空,不是布尔值假),系统会显示在 {% if %} 和 {% endif %} 之间的任何内容,例如:

{% if today_is_weekend %}
  <p>Welcome to the weekend!</p>
{% endif %}

{% else %} 标签是可选的:

{% if today_is_weekend %}
  <p>Welcome to the weekend!</p>
{% else %}
  <p>Get back to work.</p>
{% endif %}

Python 的“真值”

在Python和Django模板系统中,以下这些对象相当于布尔值的False

  •     空列表([] )
  •     空元组(() )
  •     空字典({} )
  •     空字符串('' )
  •     零值(0 )
  •     特殊对象None
  •     对象False(很明显)

    提示:你也可以在自定义的对象里定义他们的布尔值属性(这个是python的高级用法)。

除以上几点以外的所有东西都视为`` True``

{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如: 例如:

{% if athlete_list and coach_list %}
  Both athletes and coaches are available.
{% endif %}

{% if not athlete_list %}
  There are no athletes.
{% endif %}

{% if athlete_list or coach_list %}
  There are some athletes or some coaches.
{% endif %}

{% if not athlete_list or coach_list %}
  There are no athletes or there are some coaches.
{% endif %}

{% if athlete_list and not coach_list %}
  There are some athletes and absolutely no coaches.
{% endif %}

{% if %} 标签不允许在同一个标签中同时使用 and 和 or ,因为逻辑上可能模糊的,例如,如下示例是错误的: 比如这样的代码是不合法的:

{% if athlete_list and coach_list or cheerleader_list %}

系统不支持用圆括号来组合比较操作。 如果你确实需要用到圆括号来组合表达你的逻辑式,考虑将它移到模板之外处理,然后以模板变量的形式传入结果吧。 或者,仅仅用嵌套的{% if %}标签替换吧,就像这样:

{% if athlete_list %}
  {% if coach_list or cheerleader_list %}
    We have athletes, and either coaches or cheerleaders!
  {% endif %}
{% endif %}

多次使用同一个逻辑操作符是没有问题的,但是我们不能把不同的操作符组合起来。 例如,这是合法的:

{% if athlete_list or coach_list or parent_list or teacher_list %}

并没有 {% elif %} 标签, 请使用嵌套的`` {% if %}`` 标签来达成同样的效果:

{% if athlete_list %}
  <p>Here are the athletes: {{ athlete_list }}.</p>
{% else %}
  <p>No athletes are available.</p>
  {% if coach_list %}
    <p>Here are the coaches: {{ coach_list }}.</p>
  {% endif %}
{% endif %}

一定要用 {% endif %} 关闭每一个 {% if %} 标签。

Python 相关文章推荐
python生成指定尺寸缩略图的示例
May 07 Python
浅析Python中else语句块的使用技巧
Jun 16 Python
Python 递归函数详解及实例
Dec 27 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
Python操作csv文件实例详解
Jul 31 Python
windows下python和pip安装教程
May 25 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
Python 复平面绘图实例
Nov 21 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
Python实现简繁体转换
Jun 07 Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 #Python
python实现判断数组是否包含指定元素的方法
Jul 15 #Python
python获取元素在数组中索引号的方法
Jul 15 #Python
Django框架中方法的访问和查找
Jul 15 #Python
Python的Django框架中的Context使用
Jul 15 #Python
在Python的Django框架中创建和使用模版
Jul 15 #Python
详解Python的Django框架中的模版相关知识
Jul 15 #Python
You might like
PHP 防注入函数(格式化数据)
2011/08/08 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python3中的md5加密实例
2018/05/29 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
利用python在excel中画图的实现方法
2020/03/17 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
Python函数调用追踪实现代码
2020/11/27 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
汽车销售求职自荐信
2013/10/01 职场文书
品管员岗位职责
2013/11/10 职场文书
教师节简报
2015/07/20 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis