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中的算数运算符的用法
May 13 Python
Python实现配置文件备份的方法
Jul 30 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
使用python实现链表操作
Jan 26 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
Python多进程写入同一文件的方法
Jan 14 Python
pow在python中的含义及用法
Jul 11 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
python 通过手机号识别出对应的微信性别(实例代码)
Dec 22 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
通过python检测字符串的字母
Feb 18 Python
Pycharm连接gitlab实现过程图解
Sep 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
php开发环境配置记录
2011/01/14 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php实现的双向队列类实例
2014/09/24 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
Python如何发布程序的详细教程
2018/10/09 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Django 开发环境配置过程详解
2019/07/18 Python
python生成随机红包的实例写法
2019/09/02 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
python 实现批量图片识别并翻译
2020/11/02 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
大学生个人总结的自我评价
2013/10/05 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
大型会议策划方案
2014/05/17 职场文书
庆七一宣传标语
2014/10/08 职场文书
2014年销售部工作总结
2014/12/01 职场文书
运动会表扬稿
2015/01/16 职场文书
通知函的格式
2015/04/27 职场文书
红歌会主持词
2015/07/02 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书