📅  最后修改于: 2023-12-03 14:40:47.197000             🧑  作者: Mango
在 Django 中,查询是常见的操作之一。Django 提供了各种运算符用于条件过滤、比较和聚合查询。本文将介绍 Django 查询中的常用运算符。
比较运算符用于比较两个值之间的关系。常用的比较运算符有:
=
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于下面是使用比较运算符进行查询的示例代码:
from django.db.models import Q
from myapp.models import MyModel
# 查询 age 大于等于 18 的对象
MyModel.objects.filter(age__gte=18)
# 查询 name 不等于 "John" 的对象
MyModel.objects.exclude(name="John")
# 使用 Q 对象进行复杂条件查询
MyModel.objects.filter(Q(age__lt=20) | Q(name__icontains="john"))
包含运算符用于检查某些数据是否包含在另一组数据中。常用的包含运算符有:
in
:包含在列表中contains
:包含某个值icontains
:不区分大小写地包含某个值下面是使用包含运算符进行查询的示例代码:
from myapp.models import MyModel
# 查询 name 包含 "John" 的对象
MyModel.objects.filter(name__contains="John")
# 查询 age 在列表 [18, 20, 22] 中的对象
MyModel.objects.filter(age__in=[18, 20, 22])
逻辑运算符用于组合多个查询条件。常用的逻辑运算符有:
&
:逻辑与|
:逻辑或~
:逻辑非可以使用逻辑运算符将不同的查询条件组合在一起。
下面是使用逻辑运算符进行查询的示例代码:
from django.db.models import Q
from myapp.models import MyModel
# 查询年龄小于 20 且名字为 "John" 的对象
MyModel.objects.filter(Q(age__lt=20) & Q(name="John"))
# 查询年龄大于 30 或名字包含 "Smith" 的对象
MyModel.objects.filter(Q(age__gt=30) | Q(name__contains="Smith"))
# 查询年龄不等于 25 的对象
MyModel.objects.filter(~Q(age=25))
以上是 Django 查询中常用的运算符。通过合理使用这些运算符,可以轻松构建出复杂的查询语句。
注意:上述示例代码中的
MyModel
是一个 Django 模型类的示例,请根据实际情况替换为自己的模型类。
希望这个介绍能够帮助你更好地理解 Django 查询中的运算符。