• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

djangoorm的get,filter,all, values,values_list区别

武飞扬头像
Li- Li
帮助5

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.写到这里就结束了,这是博主自己总结的,希望能帮到疑惑的你

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhajfk
系列文章
更多 icon
同类精品
更多 icon
继续加载