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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python中List的sort方法指南
Sep 01 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python生成随机密码的方法
Jun 16 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
Pycharm及python安装详细教程(图解)
Jul 31 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
Python基本知识点总结
Apr 07 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
MYSQL环境变量设置方法
2007/01/15 PHP
PHP6 mysql连接方式说明
2009/02/09 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
python中的错误处理
2016/04/10 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
大学生收银员求职信分享
2014/01/02 职场文书
工作检讨书500字
2014/10/19 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android