Django 教程

浏览7638
更新时间2025-08-21

If 语句

if 语句计算一个变量,如果值为真,则执行一段代码。

实例

{% if greeting == 1 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

Elif

elif 关键字表示"如果前面的条件不成立,则试试这个条件"。

实例

{% if greeting == 1 %}
  <h1>Hello</h1>
{% elif greeting == 2 %}
  <h1>Welcome</h1>
{% endif %} 
运行实例 »

Else

else 关键字可以捕获前面条件未捕获的任何内容。

实例

{% if greeting == 1 %}
  <h1>Hello</h1>
{% elif greeting == 2 %}
  <h1>Welcome</h1>
{% else %}
  <h1>Goodbye</h1>
{% endif %} 
运行实例 »

运算符

上面的例子使用了==运算符,用来检查一个变量是否等于一个值, 但是您可以使用许多其他运算符,或者如果您只想检查变量是否不为空,甚至可以删除运算符:

实例

{% if greeting %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

==

等于。

实例

{% if greeting == 2 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

!=

不等于。

实例

{% if greeting != 1 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

<

小于。

实例

{% if greeting < 3 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

<=

小于或等于。

实例

{% if greeting <= 3 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

>

大于。

实例

{% if greeting > 1 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

>=

大于或等于。

实例

{% if greeting >= 1 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

and

检查多个条件是否为真。

实例

{% if greeting == 1 and day == "Friday" %}
  <h1>Hello Weekend!</h1>
{% endif %} 
运行实例 »

or

检查其中一个条件是否为真。

实例

{% if greeting == 1 or greeting == 5 %}
  <h1>Hello</h1>
{% endif %} 
运行实例 »

and/or

结合 and 和 or。

实例

{% if greeting == 1 and day == "Friday" or greeting == 5 %}
运行实例 »

在 Django 的 if 语句中不允许使用括号,所以当你结合 and 和 or 运算符,重要的是要知道括号是为 and 而不是为 or 添加的。

意思是上面的例子是这样被解释器读取的:

{% if (greeting == 1 and day == "Friday") or greeting == 5 %}

in

检查某个项目是否存在于对象中。

实例

{% if 'Banana' in fruits %}
  <h1>Hello</h1>
{% else %}
  <h1>Goodbye</h1>
{% endif %} 
运行实例 »

not in

检查对象中是否不存在某个项目。

实例

{% if 'Banana' not in fruits %}
  <h1>Hello</h1>
{% else %}
  <h1>Goodbye</h1>
{% endif %} 
运行实例 »

is

检查两个对象是否相同。

这个操作符与==运算符不同,因为==运算符检查两个对象的值,而is运算符检查两个对象的身份。

在视图中,我们有两个对象,x 和 y,具有相同的值: p>

实例

views.py:

from django.http import HttpResponse
from django.template import loader

def testing(request):
  template = loader.get_template('template.html')
  context = {
    'x': ['Apple', 'Banana', 'Cherry'], 
    'y': ['Apple', 'Banana', 'Cherry'], 
  }
  return HttpResponse(template.render(context, request))  

这两个对象的值相同,但是是同一个对象吗?

实例

{% if x is y %}
  <h1>YES</h1>
{% else %}
  <h1>NO</h1>
{% endif %}
运行实例 »

让我们用 == 运算符尝试相同的示例:

实例

{% if x == y %}
  <h1>YES</h1>
{% else %}
  <h1>NO</h1>
{% endif %}
运行实例 »

两个对象怎么可能相同? 好吧,如果您有两个指向同一个对象的对象,那么 is 运算符的计算结果为 true:

我们将通过使用 {% with %} 标签来演示这一点,它允许我们在模板中创建变量:

实例

{% with var1=x var2=x %}
  {% if var1 == var2 %}
    <h1>YES</h1>
  {% else %}
    <h1>NO</h1>
  {% endif %}
{% endwith %}
运行实例 »

is not

检查两个对象是否不相同。

实例

{% if x is not y %}
  <h1>YES</h1>
{% else %}
  <h1>NO</h1>
{% endif %} 
运行实例 »

相关视频

更多

免费

php8,我来也
初级php8,我来也

34万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.6万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

31万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

65万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.7万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.4万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.3万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.4万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载