django查询 model中get和filter的区别
之前没怎么用过django的orm,这次用了下,看了下这两个的具体区别
get查询
get查询是一定能查询到的数据且只能查到这一个,如果查询不到或者查询到多个都会返回报错
equity_info = EquityInfo.objects.get(code=single_equity_info['code'])
get方法的文档地址: https://docs.djangoproject.com/en/4.0/ref/models/querysets/#get
如果get()没有找到任何对象,则会引发Model.DoesNotExist异常
如果get()找到多个对象,则会引发Model.MultipleObjectsReturned异常
注:使用get的时候,一定要确保查询的数据具有唯一性
filter查询
查询到的是列表,如果没查询到,也会给个空列表
返回一个新QuerySet的包含与给定查找参数匹配的对象。
equity_info = EquityInfo.objects.filter(code=single_equity_info['code'])
# 取第一个查询对象
first = equity_info[0]
filter方法的文档地址: https://docs.djangoproject.com/en/4.0/ref/models/querysets/#filter
本文介绍了Django ORM中get和filter方法的区别。get方法用于精确查询,返回单个对象,若未找到或找到多个都会抛出异常;而filter则返回一个QuerySet,即使没有查询结果也会返回空列表。了解这些差异对于高效使用Django进行数据库操作至关重要。
1万+

被折叠的 条评论
为什么被折叠?



