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+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
Python格式化输出%s和%d
May 07 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
使用numba对Python运算加速的方法
Oct 15 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
python多线程分块读取文件
Aug 29 Python
Python中关于浮点数的冷知识
Sep 22 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
Python如何在单元测试中给对象打补丁
Aug 03 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
python某漫画app逆向
Mar 31 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类的注册与自动加载
2013/07/05 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
php批量修改表结构实例
2017/05/24 PHP
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
python服务器与android客户端socket通信实例
2014/11/12 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
详解rem 适配布局
2018/10/31 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
幼儿教师个人求职信范文
2013/09/21 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
先进工作者申报材料
2014/12/23 职场文书
罚站检讨书
2015/01/29 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书