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 相关文章推荐
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
对python周期性定时器的示例详解
Feb 19 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
python aiohttp的使用详解
Jun 20 Python
Django中的用户身份验证示例详解
Aug 07 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
Python如何解除一个装饰器
Aug 07 Python
Python快速实现一键抠图功能的全过程
Jun 29 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 购物车的例子
2009/05/04 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
Python 一句话生成字母表的方法
2019/01/02 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
python实现淘宝购物系统
2019/10/25 Python
详解Django admin高级用法
2019/11/06 Python
Python2与Python3的区别详解
2020/02/09 Python
python包的导入方式总结
2021/03/02 Python
.NET remoting的两种通道是什么
2016/05/31 面试题
会计与审计专业大专生求职信
2013/10/03 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
标枪加油稿
2015/07/22 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
mysql联合索引的使用规则
2021/06/23 MySQL
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers