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中的descriptor描述器的作用及用法
Jun 27 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
django1.11.1 models 数据库同步方法
May 30 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
Python Django实现layui风格+django分页功能的例子
Aug 29 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python文件操作基础流程解析
Mar 19 Python
Python中有几个关键字
Jun 04 Python
python glom模块的使用简介
Apr 13 Python
Python 用户输入和while循环的操作
May 23 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单件模式结合命令链模式使用说明
2008/09/07 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
php无序树实现方法
2015/07/28 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
eclipse php wamp配置教程
2016/06/30 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
python制作最美应用的爬虫
2015/10/28 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
python调用摄像头拍摄数据集
2019/06/01 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
木工主管岗位职责
2013/12/08 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js