Python Django,模型,查询数据库。get()、all()、filter()、exclude()、order_by()

条件格式:  模型类属性名__条件名    # 所以定义模型类属性名时不能使用多个下划线。

例如: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等函数一起使用 。

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/84944010