Django-ORM模型层语法之必知必会13条

一、必知必会13条

1、all()
查询所有queryset 类似于列表

2、filter()

带有过滤条件的查询,结果为queryset数据类型

3、get()

直接拿数据对象,但是条件不存在直接报错

4、first()

拿queryset里面的第一个元素

5、last()

拿queryset里面的最后元素

6、values()

可以指定获取的数据字段 列表套字典

res = models.User.objects.values('name')

print(res) # <QuerySet [{'name': 'steven'}, {'name': 'baby'}]>

7、values_list()

列表套元祖

res = models.User.objects.values_list('name','age')
print(res) # <QuerySet [('steven', 18), ('baby', 20)]>
print(res.query) # 查看内部封装的sql语句
''' 上述查看sql语句的方式,只能用于queryset对象,只有queryset对象才能点击query查看内部的sql语句 '''

8、distinct()

去重

res = models.User.objects.values('name','age').distinct()

print(res)

''' 去重一定要是一模一样的数据,如果带有主键那么肯定不一样,往后的查询中一定不要忽略主键 '''

9、order_by()

res = models.User.objects.order_by('age') # 默认升序

res = models.User.objects.order_by('-age') # 降序 print(res)

10、reverse()

反转的前提是数据已经排序了

res = models.User.objects.order_by('age').reverse() print(res)

11、count()

统计当前数据的个数

res = models.User.objects.count()

print(res)

12、exclude()

排除在外

res= models.User.objects.exclude(name='steven') print(res)
13、exists()

基本用不到,数据本身就自带布尔值,返回布尔值

res = models.User.objects.filter(pk=4).exists()

print(res) # True

二、按返回值划分

1、返回QuerySet对象的方法有
all()

filter()

exclude()

order_by()

reverse()

distinct()

特殊的QuerySet
values() 返回一个可迭代的字典序列

values_list() 返回一个可迭代的元祖序列

2、返回具体对象的
get()

first()

last()

3、返回布尔值的方法
exists()

4、返回数字的方法
count()

 

参考博客:

https://blog.csdn.net/weixin_51730169/article/details/110735344

posted @   未来可期_Durant  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-07-09 有个用户反馈上传头像失败,分析原因?
2021-07-09 手机扫描二维码的测试用例(转载)
2021-07-09 一次完整的HTTP请求过程是怎么样的呢?【图文详解】(转载)
2021-07-09 junit5注解之顺序执行
点击右上角即可分享
微信分享提示