那么我们就来详细讲解Django的filter()
函数作用及使用方法的完整攻略吧。
简介
filter()
函数是Django中最常用的方法之一。该函数的作用是根据指定的查询条件筛选数据库中的记录,然后将满足条件的记录返回。
语法
filter()
函数的语法非常简单,如下所示:
model.objects.filter(<field_name>=<value>)
其中,<field_name>
代表要筛选的字段名称,可以是一个或多个字段名称;<value>
代表要筛选的值,可以是一个或多个值,多个值用逗号分隔。
实例1
假设我们有一个Person
模型,其中包含以下字段:
class Person(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
is_student = models.BooleanField()
city = models.CharField(max_length=50)
我们现在想要查询age
字段大于等于18,且is_student
字段为True的人员记录。可以使用如下代码实现:
from myapp.models import Person
students = Person.objects.filter(age__gte=18, is_student=True)
在上述代码中,我们使用__gte
运算符表示age
字段大于等于18。此外,我们还使用了逗号将多个查询条件连接起来。
实例2
现在我们再举一个例子,使用filter()
函数按照城市名称查询人员记录。在这个例子中,我们可以使用__icontains
运算符来搜索符合条件的记录。
from myapp.models import Person
search_query = "New York"
results = Person.objects.filter(city__icontains=search_query)
在上述代码中,我们使用了__icontains
运算符来查询包含search_query
中字符串的城市名称。