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

博客介绍了图书数据的查询和排序方法。包括get函数返回单条数据,all函数查询所有,filter函数进行条件查询,exclude函数取反查询,order_by函数对结果排序。还说明了条件格式及多种条件示例,如范围、日期等查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值