您的位置:首页 > 数据库

Django关于数据库API的Field查找说明

2017-03-07 00:00 337 查看
Django 数据库API关于Field查找说明

Field查找时,以i开头的是不区分大小写的,如icontains、istartswith等


exact

精确查找,类似数据库的“=”

Entry.objects.get(headline__exact="Man bites dog")

精确查找headline的值为Man bites dog的对象

contains

执行模糊查找,类似数据库的“like %''%”

Entry.objects.get(headline__contains="bites")

模糊查找headline的值包含bites的对象

gt,gte,lt,lte

大于,大于或等于,小于,小于或等于

>>> Entry.objects.filter(id__gt=4)
>>> Entry.objects.filter(id__lt=15)
>>> Entry.objects.filter(id__gte=10)

这些查询分别返回ID大于4,ID小于15,以及ID大于等于10的对象

in

筛选出包含在给定列表中的数据

Entry.objects.filter(id__in=[1, 3, 4])

这会返回所有 ID 为 1,3,或 4 的条目

startswith,endswith

开头匹配和结尾匹配,类似数据库的“like ''%”和“like %''”

Entry.objects.filter(headline__startswith='Will')


range

区间查找

>>> start_date = datetime.date(2005, 1, 1)
>>> end_date = datetime.date(2005, 3, 31)
>>> Entry.objects.filter(pub_date__range=(start_date, end_date))

查询发布日期在2005-1-1到2005-3-31区间的对象

isnull

使用``True``或``False``,则分别相当于 SQL 语句中的``IS NULL``和``IS NOT NULL``

>>> Entry.objects.filter(pub_date__isnull=True)

查找发布日期为Null的对象

year, month, and day

对 date/datetime 类型严格匹配年、月或日

>>>Entry.objects.filter(pub_date__year=2005)
>>> Entry.objects.filter(pub_date__month=12)
>>> Entry.objects.filter(pub_date__day=3)
>>> Entry.objects.filter(pub_date__month=12, pub_date_day=25)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django Filed Lookup