django中orm中的get,filter,all, values,values_list区别

1.get

2.filter

3.all

4.values

5.values_list

1.get

  • get是获取一个对象(object),获取数据只会返回一条匹配的结果,获取的数据只能在数据库中有一条。
  • 如果返回多个结果,会引发MultipleObjectsReturned异常;如果没有任何匹配到的结果也会引发DoesNotExist异常

一般使用python manage.py shell 去测试疑问

返回的是一个Goods object (1)(一个对象)

2.filter

  • filter 当面对有多个对象的时候,就不能用 get 了,而应该用 filter。
  • filter 返回的是一个列表查询集(QuerySet)

  • filter(name=aaa).first()

使用first()也就相当于列表的索引,也是相当于获取的是一个对象和get一样

列表的索引 

3.all

all  获取一个表中的所有数据,返 QuerySet数据对象

 4.values

  • values(*fields) 返回一个查询集结果,但是迭代访问时返回的是字典,而不是数据实例对象

  •  values() 接收可选的位置参数 *fields,它指定 SELECT 应该限制哪些字段。比如下面筛选 mail 信息:

 5.values_list

  • values_list(*fields, flat=False)    返回的是元组而不是字典。每个元组包含传递给 values_list() 调用的字段的值,所以第一个元素为第一个字段,以此类推

  •  如果只传递一个字段,你还可以传递 flat 参数。如果为 True,它表示返回的结果为单个值而不是元组。

values方法可以获取number字段的字典列表。
values_list可以获取number的元组列表。
values_list方法加个参数flat=True可以获取number的值列表。

django_filter的values / values_list - 简书

 6.写到这里就结束了,这是博主自己总结的,希望能帮到疑惑的你

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值