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检查字符串是否是正确ISBN的方法
Jul 11 Python
Python字符串格式化输出方法分析
Apr 13 Python
python如何实现内容写在图片上
Mar 23 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
pymongo中聚合查询的使用方法
Mar 22 Python
django自带调试服务器的使用详解
Aug 29 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 Python
Python机器学习三大件之一numpy
May 10 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
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
用于table内容排序
2006/07/21 Javascript
Prototype使用指南之ajax
2007/01/10 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
vue组件的写法汇总
2018/04/12 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
Python模拟登录12306的方法
2014/12/30 Python
详细介绍Python函数中的默认参数
2015/03/30 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
法学研究生自我鉴定范文
2013/12/04 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
教师党员承诺书2015
2015/01/21 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
SQL SERVER中的流程控制语句
2022/05/25 SQL Server