具体查询操作

基本条件查询
1.查询id为1的书籍

BookInfo.objects.filter(id=1)

2.查询书名包含‘湖’的书籍 (like %湖%)

BookInfo.objects.filter(btitle__contains=‘湖’)

3.查询书名以‘部’结尾的书籍 (endswith 、startswith)(like %部)

BookInfo.objects.filter(btitle__endswith=‘部’)

4.查询书名不为空的书籍 (双重否定代表肯定)

BookInfo.objects.filter(btitle__isnull=False)

5.查询编号为2或4的书籍 (选项,要么2要么4) (不是区间)

BookInfo.objects.filter(id__in=[2,4])

6.查询编号大于2的书籍 (大于:gt)(小于:lt)(大于等于:gte)(小于等于:lte)

BookInfo.objects.filter(id__gt=2)

7.查询id不等于3的书籍 (exclude查询满足条件以外的数据) (filter查询满足条件的数据)

BookInfo.objects.exclude(id=3)

8.查询1980年发表的书籍

BookInfo.objects.filter(bpub_date__year=‘1980’)

9.查询1990年1月1日后发表的书籍

BookInfo.objects.filter(bpub_date__gt=date(1990,1,1))

10.按照阅读量进行排序查询

正序(从小到大):

BookInfo.objects.all().order_by(‘bread’)

倒序:
BookInfo.objects.all().order_by(’-bread’)

########################################################

F对象

1.查询阅读量大于评论量的书籍

BookInfo.objects.filter(bread__gt=F(‘bcomment’))

2.查询阅读量大于2倍评论量的书籍

BookInfo.objects.filter(bread__gt=F(‘bcomment’)*2)

########################################################

Q对象

1.查询阅读量大于20,或编号小于3的图书

BookInfo.objects.filter(Q(bread__gt=20) | Q(id__lt=3))

2.查询编号不等于3的书籍

BookInfo.objects.filter(~Q(id=3))

########################################################

聚合函数

1.统计总的阅读量

BookInfo.objects.aggregate(Sum(‘bread’))

########################################################

基础关联查询

1.一查多:查询编号为1的图书中所有人物信息

book = BookInfo.objects.get(id=1)

book.heroinfo_set.all()

2.多查一:查询编号为1的英雄出自的书籍

hero = HeroInfo.objects.get(id=1)
hero.hbook

########################################################

关联过滤查询

1.多查一:查询书籍中人物的描述包含"降龙"的书籍

BookInfo.objects.filter(heroinfo__hcomment__contains=‘降龙’)

2.一查多:查询书名为"天龙八部"的所有人物信息

HeroInfo.objects.filter(hbook__btitle=‘天龙八部’)

from django.db.models import Q

def index(request):
a=models.Company.objects.filter(Q(num__gt=20)|Q(name__contains=‘小’)).order_by(’-time’)
for x in a:
print(x.name)
return HttpResponse(‘123’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值