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

Django中QuerySet

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

1.4K32
您找到你想要的搜索结果了吗?
是的
没有找到

django queryset相加筛选教程

1、集合相加 a = {1,2,3} b = {3,4,5} print(type(a)) print(a|b) 2、queryset 符合条件筛序 projects = Project_models.objects.filter...’) projects = projects.filter(bad_numbers__gt=0).order_by(‘bad_numbers’) 补充知识:django中聚合aggregateannotate...GROUP BY使用方法 接触django已经很长时间了,但是使用QuerySet查询集方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小时候还可以,但是如果数据量很大...2.若查询条件是动态变化,则会使开发变得更加困难。 django为了解决这一难题,提供了aggregate(聚合函数)annotate(在aggregate基础上进行GROUP BY操作)。...以上这篇django queryset相加筛选教程就是小编分享给大家全部内容了,希望能给大家一个参考。

87040

【实测】djangoQuerySet 应该怎么用?

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

56210

Golang 快速生成数据库表 model queryset

就是生成 model 目录 xxx.go xxx_gen.go 文件 使用工具: 快速生成 model:gentool 根据 model 生成 queryset:go-queryset 下面是详细操作步骤...概述 Golang 操作数据库表时,可能经常需要创建像下图中所示与数据表相对应 struct 对象,常被称为 model,有同学可能会说,model 也没几个字段,手写不就好了,没必要用工具来生成。...所以这里介绍一个能快速生成 model 文件 queryset 方法。...' 结尾文件,生成 queryset 文件前,需要在 model 文件中添加 2 行注释,虽然是注释,但是这两行注释必不可少。...student.go 是当前model 文件文件名,student_gen.go 是将要生成 queryset 文件文件名 //go:generate goqueryset -in student.go

1.2K00

Django学习笔记之Django QuerySet方法

一般情况下,我们在写Django项目需要操作QuerySet时一些常用方法已经满足我们日常大多数需求,比如get、filter、exclude、delete神马感觉就已经无所不能了,但随着项目但业务逻辑越来越复杂...就是你读出queryset可能会需要一些额外数据要添加进去时候,你就可以用这个东东咯,使用方法看代码: >>> q = Blog.objects.annotate(Count('entry')) #...,annotate返回是一个包含注解值queryset,而aggregate则单独返回注解值,返回类型是一个dict,当然,这种方式在文档中叫做聚合查询,具体使用如下: >>> q = Blog.objects.aggregate...7、latest(field_name=None) earliest(field_name=None) 分别返回指定字段最新数据与最早数据。...8、first() last() 分别返回queryset第一项与最后一项,具体用法如下: p = Blog.objects.order_by('title').first() 等同于: try:

57250

Django学习笔记之Queryset高效使用

Djangoqueryset是惰性 Djangoqueryset对应于数据库若干记录(row),通过可选查询来过滤。...这些model会保存在queryset内置cache中,这样如果你再次遍历这个queryset,你不需要重复运行通用查询。...如果查询集很大的话,if 语句是个问题 如前所述,查询集缓存对于组合 if 语句 for 语句是很强大,它允许在一个查询集上进行有条件循环。然而对于很大查询集,则不适合使用查询集缓存。...最简单解决方案是结合使用exists()iterator(), 通过使用两次数据库查询来避免使用查询集缓存。...使用exists()iterator()方法可以优化程序对内存使用。不过,由于它们并不会生成queryset cache,可能会造成额外数据库查询。

2.8K30

django-7-django模型系统

>> https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types  InterField  CharFiled... 模型类上管理器(class.objects)  queryset (惰性,,没有操作数据库)表示数据库中对象集合,等同于select 语句   query 获取mysql 语句  first()...) 根据给定条件获取过滤后queryset,多个条件用','连接  exclude(**kwargs) 作用filter相反,去除不符合条件对象  多条件or连接  from django.db.models...) 与values差不多,返回queryset,‘对象列表’,必须带上主键  defer(*field) only功能相反,用法一样,返回一个queryset,对象列表,排除  排序  order_by...(*fields) 根据给定字段来排序   如果要反序就在field前加'-'  切片 python切片用法相似,不支持复索引,数据大时候不用步长  ***切片后不再支持附加条件与排序  *多字段排序有什么用

78210

浅谈在django中使用filter()(即对QuerySet操作)时踩

例如有Book表,其包含bookname,booknum两个属性, 如何使用Objects.all(),得到booknamebooknum值 (2)filter() 返回QuerySet对象,与...(3)get()返回是Model对象,类型为列表,说明使用get方法会直接执行sql语句获取数据。 来看一个QuerySet对象: ?...message.content = content2 message.message_type = message_type2 message.save() 补充知识:Django filterget...个人体会 开发环境:Ubuntu16.04+Django 1.11.9+Python2.7 filter返回QuerySet: filter返回QuerySet,可以切片以及遍历,get则不行....pass if queryset: if queryset: pass else: pass filter也会有报错情况: filter字段类型为int时候,输入参数却是str时候会报错

4K10

【Django】QuerySet以及Pickle 序列化在Django中深度运用详解

QuerySet QuerySet本身可以在不访问数据库情况下构造、过滤、切片或复制分配。只需要在需要从数据库检索数据或将数据保存到数据库时访问数据库。...对执行QuerySet进行切片也会返回一个列表。...如果只想提取将来从数据库中重新创建QuerySet所需信息,请提取QuerySet查询属性。...QuerySet类具有以下公共属性,可用于内省: 有序 True如果QuerySet是有序–有一个order_by()子句或模型默认排序。否则,这是错误。...使用关键字参数指定注释使用关键字作为注释别名。匿名参数将根据聚合函数名称聚合模型字段为其生成别名。只有引用单个字段聚合表达式才能成为匿名参数。其他所有内容都必须是关键字参数。

1.7K10

三、Django查询表记录

类型数据来调用,对查询结果排序,默认是按照id来升序排列,返回值还是queryset类型。...空queryset类型数据也有布尔值TrueFalse,但是一般不用它来判断数据库里面是不是有数据,如果有大量数据,你用它来判断,那么就需要查询出所有的数据,效率太差了,用count或者exits...model实例化对象,而是一个可迭代字典序列,只要是返回queryset类型,就可以继续链式调用queryset类型其他查找方法,其他方法也是一样。...values_list(*field) 它与values()非常相似,它返回是一个元组序列,values返回是一个字典序列 distinct() valuesvalues_list得到queryset...values_list 以元组方式返回 QuerySet dic distinct 去重 valuesvalues_list得到queryset类型 queryset 模糊查询 Book.objects.filter

92010

Django学习笔记之Queryset详解

一般而言,当对一个没有求值QuerySet进行运算,返回QuerySet、ValuesQuerySet、ValuesListQuerySet、Model实例时,一般不会立即查询数据库;反之,当返回不是这些类型时...由于有些数据库,如Sqlite不支持delete与limit连用,所以在这些数据库对QuerySet切片执行delete()会出错。...由于有些数据库,不支持update与limit连用,所以在这些数据库对QuerySet切片执行update()会出错。...而values_list()跟values()相似,它返回是一个ValuesListQuerySet,也类型于一个列表,不过它元素不是字典,而是元组。...WHERE pub_date IS NULL; 2.4.18  QuerySet切片——对应于limit     QuerySet索引只能是非负整数,不支持负整数,所以QuerySet[-1]错误 a

2.7K30

Django学习之旅(六)

2 连接数据库 首先打开 PyCharm 软件,点击 PyCharm 右侧名为 Database 选项。这时会弹出操作数据库可视化界面。...每个模型都有一些类变量,在模型中每个类变量都代表了数据库中一个字段。 每个字段通过 Field 类一个实例表示 —— 例如字符字段 CharField 日期字段 DateTimeField 。...这种方法告诉 Django,每个字段中保存着什么类型数据。更多字段以及含义可以阅读 Django 官方文档。 4 创建表 打开终端,切换目录到 manage.py 所在目录。...执行一下两行命令来创建数据库表。 ? 运行成功结果如下: ? 在数据库也会发现我们刚才新建表 ? 5 插入与查询数据 Author Book 表已经新建成功了。你可能有这样疑惑。...5)使用 QuerySet 更新数据 A、单个 object 更新, 适合于 .get(), get_or_create(), update_or_create() 等得到 obj,新建很类似。

1.4K30
领券