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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享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注解之顺序执行