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实现simhash算法实例
Apr 25 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
Python开发网站目录扫描器的实现
Feb 21 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 Python
python获取百度热榜链接的实例方法
Aug 25 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
python调试工具Birdseye的使用教程
May 25 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 事件机制(2)
2011/03/23 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
php绘制圆形的方法
2015/01/24 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
JavaScript 基础问答三
2008/12/03 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
JavaScript中的this机制
2016/01/30 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
babel基本使用详解
2017/02/17 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
vue如何判断dom的class
2018/04/26 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
Python 中的with关键字使用详解
2016/09/11 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
详解python pandas 分组统计的方法
2019/07/30 Python
使用Python函数进行模块化的实现
2019/11/15 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
银行贷款委托书范本
2014/10/11 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server