下面我会提供一个完整的“Django models filter筛选条件详解”的攻略。我们将分步骤介绍筛选条件以及如何使用Django的filter方法来查询模型。
简介
Django是Python Web应用程序的基本框架之一。 在Django中,模型是由Python类表示的,每个类映射到数据库表。 要从数据库中检索数据,请使用Django ORM提供的许多方法之一,例如filter()。
筛选条件
在Django中使用筛选条件的形式如下:
Model.objects.filter(**kwargs)
其中kwargs是包含筛选条件的一个字典。
Django支持许多不同类型的筛选条件,包括以下几种:
- 等于:
__exact
或者不加修饰符。 - 不等于:
__ne
,或者在条件中直接用!
代替__
。 - 大于:
__gt
。 - 大于等于:
__gte
。 - 小于:
__lt
。 - 小于等于:
__lte
。 - 包含:
__contains
。 - 正则表达式:
__regex
。 - 不区分大小写的搜索:
__iexact
,__icontains
,__iregex
。
还有其他的筛选条件,请参考官方文档https://docs.djangoproject.com/en/3.2/ref/models/querysets/#field-lookups。
示例
假设我们有一个简单的模型,如下所示:
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
age = models.IntegerField()
示例一:
查询年龄大于等于18岁的人:
Person.objects.filter(age__gte=18)
示例二:
查询名字包含“John”或“Mary”的人:
Person.objects.filter(Q(first_name__icontains='John') | Q(first_name__icontains='Mary'))
在上面的示例中,我们使用Q对象和|
运算符来组合两个查询条件。
结论
使用Django的filter方法可以轻松地查询数据并从数据库中检索所需的数据。在使用它时,请记住可以使用多种不同的筛选条件。此攻略提供了两个简单的示例来说明如何使用Django的filter方法进行模型查询。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django models filter筛选条件详解 - Python技术站