ORM语法—查询操作

本文介绍了ORM中的查询操作,包括字段查询的get()、all()、filter()、exclude()和order_by()函数,以及F对象和Q对象在条件比较和逻辑关系中的应用。此外,还探讨了聚合函数如何对查询结果进行聚合操作并返回字典类型的数据。

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

以下函数的使用,通过进入Python脚本(python manage.py shell)进行测试。

1.字段查询

(1)get()函数:返回表中满足条件的一条且只能有一条数据。

>>> from book.models import BookInfo
>>> book = BookInfo.objects.get(id=2)
>>> book.bname

(2)all()函数:返回模型类对应表格中的所有数据。

>>> from book.models import BookInfo
>>> books = BookInfo.objects.all()
>>> for book in books:
...    print(book.bname)   # 注:这里要缩进
...

    注意,这里print前要记得缩进。

(3)filter()函数:返回满足条件的数据。

模型类属性名__条件名 = 值   # 注:双下划线

#条件名:
<1> exact          # 精确定位
<2> contains       # 包含**
<3> endswith       # 以**结尾
<4> startswith     # 以**开头
<5> gt   gte       # 大于   大于等于
<6> lt   lte       # 小于   小于等于
......

 (4)exclude()函数:返回不满足条件的数据。

>>> from book.models import BookInfo
>>> books = BookInfo.objects.exclude(id=2)
>>> for book in books:
...    print(book.bname)
...

 (5)order_by()函数:对查询结果进行排序。

# 查询所有图书信息,并按照id 从小到大进行排序
BookInfo.objects.all().order_by('id')
# 查询所有图书信息,并按照id 从大到小进行排序
BookInfo.objects.all().order_by('-id')

2.F对象

   F对象主要用于类属性间的比较,使用前需要进行导入;

>>> from django.db.models import F
>>> # F(类属性名)
>>> books = BookInfo.objects.filter(bpage__gt=F("id")*10)

3.Q对象

   Q对象主要用于查询时条件之间的逻辑关系,使用前需导入;

>>> # 导入
>>> from django.db.models import Q
>>> # Q(属性名__条件名=值)
>>> books = BookInfo.objects.filter(Q(id__gt=2)&Q(bpage__gt=300))

4.聚合函数

   聚合函数是对查询结果进行聚合操作,聚合后返回值是一个字典类型的数据

#聚合函数有sum()、count()、avg()、max()、min(),需要调用aggregate()函数来聚合
>>> # 导入
>>> from book.models import BookInfo
>>> from django.db.models import Count
>>> BookInfo.objects.aggregate(Count("id"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值