条件格式: 模型类属性名__条件名 = 值 # 所以定义模型类属性名时不能使用多个下划线。
例如:id__exact = 1 。
一、get函数(仅能返回一条数据)。
book = BookInfo.objects.get(id__exact = 1) # 可以且仅可以返回一条数据。 没有数据或返回多条数据都会抛异常。
book = BookInfo.objects.get(id = 1) # 简写形式。 __exact可以省略。返回模型对象
二、all函数 (查询所有)
books = BookInfo.objects.all() # 查询所有。 返回QuerySet查询集(可以遍历)
三、filter函数 (条件查询)
条件查询。(可以通过逗号,连接多个条件) 返回QuerySet查询集(可以遍历)
books = BookInfo.objects.filter(title__exact = '天龙八部') # __exact 等于。 __exact 可以省略。 (__iexact 不区分大小写)
books = BookInfo.objects.filter(title__contains = '天') # __contains 包含。模糊查询。 (__icontains 不区分大小写)
books = BookInfo.objects.filter(title__endswith = '部') # __endswith 以..结尾。 __startswith 以..开头。 (__iendswith 不区分大小写)
books = BookInfo.objects.filter(title__isnull = False) # __isnull 是否为空。 True:表示为null。 False表示not null。
books = BookInfo.objects.filter(id__in = [1,3,5]) # __in 范围查询。
books = BookInfo.objects.filter(id__gt = 3) # __gt 大于。 __lt 小于。 __gte 大于等于。 __lte 小于等于。
books = BookInfo.objects.filter(pub_date__gt = date(1980,1,1)) # 日期查询。
books = BookInfo.objects.filter(pub_date__year = 1980) # 日期查询。(year、month、day、week_day、hour、minute、second)
四、exclude函数 (filter函数取反)
查询id不为3的所有图书。
books = BookInfo.objects.exclude(id = 3) # 与filter函数作用相反。 返回QuerySet查询集(可以遍历)
五、order_by函数 (排序)
对查询结果进行排序。 返回QuerySet查询集(可以遍历)
books = BookInfo.objects.all().order_by('-id') # 'id'表示升序; '-id'表示降序。
books = BookInfo.objects.order_by('-id') # .all()可以省略。 默认查询所有。 可以结合filter等函数一起使用 。
网友评论