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基础教程之字典操作详解
Mar 25 Python
Python中函数的用法实例教程
Sep 08 Python
python用来获得图片exif信息的库实例分析
Mar 16 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
python调用API实现智能回复机器人
Apr 10 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
Aug 09 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
基于Python实现流星雨效果的绘制
Mar 18 Python
Python+pyaudio实现音频控制示例详解
Jul 23 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
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
php读取本地json文件的实例
2018/03/07 PHP
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
Python操作CouchDB数据库简单示例
2015/03/10 Python
python实现在windows下操作word的方法
2015/04/28 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
应届生体育教师自荐信
2013/10/03 职场文书
金融专业应届生求职信
2013/11/02 职场文书
幼儿园园长岗位职责
2013/11/26 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
导游词300字
2015/02/13 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
作弊检讨书范文
2015/05/06 职场文书
2015年工商所工作总结
2015/05/21 职场文书
高中家长意见怎么写
2015/06/03 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python
golang操作rocketmq的示例代码
2022/04/06 Golang