首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Queryset v/s List Django

Queryset和List是Django框架中常用的数据结构,用于存储和操作数据库中的数据。

Queryset是Django中对数据库进行查询的结果集,它是一个可迭代的对象,可以通过链式调用方法来对数据进行过滤、排序、分页等操作。Queryset具有惰性加载的特性,只有在需要使用数据时才会真正执行查询操作。这种延迟加载的机制可以提高查询效率,并减少不必要的数据库访问。

List是Python中的一种数据结构,用于存储一组有序的元素。在Django中,List通常用于存储从Queryset中提取的数据,或者作为一种简单的数据结构来存储和操作非数据库相关的数据。

区别:

  1. 数据来源:Queryset是从数据库中查询得到的结果集,而List可以是任意数据的集合。
  2. 操作方式:Queryset可以通过Django提供的方法进行复杂的数据库查询和操作,而List则需要使用Python的内置方法或自定义函数来操作。
  3. 惰性加载:Queryset具有惰性加载的特性,只有在需要使用数据时才会真正执行查询操作,而List是立即加载所有数据。
  4. 数据类型:Queryset中的每个对象都是模型类的实例,而List中的元素可以是任意类型的数据。

应用场景:

  • Queryset适用于需要对数据库进行复杂查询和操作的场景,例如根据条件过滤数据、排序、分页等。
  • List适用于简单的数据存储和操作场景,例如存储一组非数据库相关的数据、对数据进行简单的遍历和处理等。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  • 腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能AI:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Django中的QuerySet

    一、QuerySet   查询集,类似一个列表,包含了满足查询条件的所有项。QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作。只有你查询的时候才真正的操作数据库。...意味着QuerySet是惰性执行的----即创建查询集不会带来任何的数据库访问,直到查询集需要求值的时候,Django才会真正运行这个查询。...,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列 values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列... distinct(): 从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。... count(): 返回数据库中匹配查询(QuerySet)的对象数量。

    1.4K32

    django合并多个queryset

    这几天正在做一个关于权限控制的django框架,今天上午遇见了一个bug,因为我的需求是,每个人拥有的权限不同,所以你所能够访问的菜单也不同,那么这时候不同的人员访问不同的菜单是不一样的。...那么我可以把他所能够操作的菜单通过关联表的id查出来,但是我前台的代码是只能解析一个queryset的,那么我便利用chain方法将他们变为一个queryset; 以下是我的代码: all_actor...(menu) for i in menu_list: all_actor = all_actor | i menu_list...= chain(all_actor) print(menu_list) return menu_list django queryset 合并 通过自带的方法...a1 = User.objects.filter(id__gt=8) a2 = User.objects.filter(id__lt=4) a3 = a1 | a2 注:这种方式合并的结构还是一个queryset

    2.8K30

    Django学习笔记之Django QuerySet的方法

    一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get、filter、exclude、delete神马的感觉就已经无所不能了,但随着项目但业务逻辑越来越复杂...就是你读出queryset可能会需要一些额外数据要添加进去的时候,你就可以用这个东东咯,使用方法看代码: >>> q = Blog.objects.annotate(Count('entry')) #...django才会从数据库读取这些数据,感觉在数据量变大后用这个方法很nice,具体用法如下: Blog.objects.defer("content").filter(publish=True).defer...答案在这里: django.models 的 on_delete参数,此参数有以下几个可选值: CASCADE:这就是delete()的默认选项,也就是关联删除 PROTECT:如果删除的model obj...settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user)) 11、fields lookups 强大滴django

    58250

    django queryset相加和筛选教程

    1、集合相加 a = {1,2,3} b = {3,4,5} print(type(a)) print(a|b) 2、queryset 符合条件的筛序 projects = Project_models.objects.filter...中聚合aggregate和annotate GROUP BY的使用方法 接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询...现在我们可以使用: msgS = MessageTab.objects.values_list(‘msg_status’).annotate(Count(‘id’)) 其中,id为数据库自动生成的自增字段...values_list的用法自行Google,或者print出来看一看。 此时,数据库实际执行的代码,可以通过: print msgS.query 打印出来。...以上这篇django queryset相加和筛选教程就是小编分享给大家的全部内容了,希望能给大家一个参考。

    90440

    【实测】djangoQuerySet 应该怎么用?

    所以,queryset 是什么?是查询结果的集合的意思。 我就不用那些标准的百度百科的回答了,咱直接上代码,从数据直接拿出来的数据来当例子,你就明白了。...好然后我们用一段函数来把数据从中取出来并打印: 结果如下: 可以看到,直接从数据库用.all 或者.filter方法拿出来的 结果是queryset,也就是查询集合。...所以queryset的另一个特性就是可以像列表一样遍历和用下标定位具体内部元素: 遍历的具体子元素,都是一个个货真价实的数据记录哈。 别看我直接输出,就显示一个link_name的值。...此时我们得到的仍然是queryset,但结果中,却显示了所有字段。 这样我们用起来就更方便。为什么这么说呢? 因为我们可以把它外面再加上list() 变成我们python常用的格式了。

    60210

    Django QuerySet查询集原理及代码实例

    一 概念 Django的ORM中存在查询集的概念。 查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。...当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返回满足条件之外的数据。...# 继续执行遍历迭代操作后,才真正的进行了数据库的查询 for book in qs: print(book.btitle) 2)缓存   使用同一个查询集,第一次使用时会发生数据库的查询,然后Django...: # 获取查询集 queryset = BookInfo.objects.all() [entry for entry in queryset] bool(queryset) entry in queryset...list(queryset)   注:简单地打印查询集不会填充缓存。

    1.4K21
    领券