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