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中的字符串知识点
Apr 14 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
对numpy中向量式三目运算符详解
Oct 31 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
python 实现矩阵填充0的例子
Nov 29 Python
python 消除 futureWarning问题的解决
Dec 25 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PHP微信支付开发实例
2016/06/22 PHP
JavaScript arguments 多参传值函数
2010/10/24 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
详解node nvm进行node多版本管理
2017/10/21 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
js实现微信聊天界面
2020/08/09 Javascript
python计算文本文件行数的方法
2015/07/06 Python
python daemon守护进程实现
2016/08/27 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
单位未婚证明范本
2014/01/18 职场文书
大学秋游活动方案
2014/02/11 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
建筑管理专业求职信
2014/07/28 职场文书
2015年材料员工作总结
2015/04/30 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
深入理解go slice结构
2021/09/15 Golang