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切换hosts文件代码示例
Dec 31 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python实现学生成绩管理系统
Apr 05 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
对Python函数设计规范详解
Jul 19 Python
python 图像的离散傅立叶变换实例
Jan 02 Python
Python %r和%s区别代码实例解析
Apr 03 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
python中@property的作用和getter setter的解释
Dec 22 Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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 版本]
2007/03/20 PHP
PHP 简单日历实现代码
2009/10/28 PHP
PHP中的array数组类型分析说明
2010/07/27 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
python在windows下实现备份程序实例
2014/07/04 Python
python求列表交集的方法汇总
2014/11/10 Python
Python正则简单实例分析
2017/03/21 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python计算二维矩形IOU实例
2020/01/18 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
土木工程实习生自我鉴定
2013/09/19 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
大学生个人求职信例文
2014/07/07 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
员工旷工检讨书
2015/08/15 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
SQL注入的实现以及防范示例详解
2021/06/02 MySQL