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

Django 模型查询2.3

简介 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句 接下来主要讨论如下知识点...查询集 字段查询:比较运算符,F对象,Q对象 查询集 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:创建查询集不会带来任何数据库的访问...异常 查询集的缓存 每个查询集都包含一个缓存来最小化对数据库的访问 在新建的查询集中,缓存为空,首次对查询集求值时,会发生数据库查询,django会将查询的结果存在查询集的缓存中,并返回请求的结果,接下来对查询集求值将重用缓存的结果...情况一:这构成了两个查询集,无法重用缓存,每次查询都会与数据库进行一次交互,增加了数据库的负载 print([e.title for e in Entry.objects.all()]) print(...(bread__gte=F('bcommet')) django支持对F()对象使用算数运算 list.filter(bread__gte=F('bcommet') * 2) F()对象中还可以写作“模型类

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django教程 —— 模型类条件查询

    引言 在之前的 Django模型设计 中简单的介绍了如何利用模型类对数据库进行增删改查,在这篇中主要介绍使用模型类对数据库进行条件查询。让大家更加熟悉 Django 操作数据库。...语法如下: 属性名称__比较运算符=值 说明:属性名称和比较运算符间使用两个下划线,所以属性名不能包括多个下划线。 1) 查询等 exact:表示判等。 例:查询编号为1的图书。...答:使用 F对象,被定义在 django.db.models 中。 语法如下: F(属性名) 例:查询阅读量大于等于评论量的图书。...books = BookInfo.objects.filter(read__gt=F('comment') * 2) Q对象 多个过滤器逐个调用表示逻辑与关系,同 sql语句 中 where 部分的 and...聚合函数包括:Avg、Count、Max、Min、Sum,被定义在django.db.models 中。 例:查询图书的总阅读量。

    1.1K20

    Django 2.1.7 模型 - 条件查询、模糊查询、空查询、比较查询、范围查询、日期查询

    上一篇Django 2.1.7 模型 - MVT模型增删功能讲述了关于MVT模型中列表的增加数据以及删除数据的功能,在数据返回的过程中,也有部分关于模型之间关联查询的数据。...本篇章将着重讲述模型之间的关联查询。...语法如下: 说明:属性名称和比较运算符间使用两个下划线,所以属性名不能包括多个下划线。...属性名称__比较运算符=值 看完上面几句话,肯定是似懂非懂的,那么我们来进入django的交互模式,引入数据模型类来查询一下看看。...: 那么下面使用django的模型查询看看,如下: In [6]: serverinfo = ServerInfo.objects.filter( id__exact = 1 ) In [7]: for

    10.8K20

    Django 2.1.7 模型 - 条件查询、模糊查询、空查询、比较查询、范围查询、日期查询

    上一篇Django 2.1.7 模型 - MVT模型增删功能讲述了关于MVT模型中列表的增加数据以及删除数据的功能,在数据返回的过程中,也有部分关于模型之间关联查询的数据。...本篇章将着重讲述模型之间的关联查询。...语法如下:  说明:属性名称和比较运算符间使用两个下划线,所以属性名不能包括多个下划线。...” 属性名称__比较运算符=值 看完上面几句话,肯定是似懂非懂的,那么我们来进入django的交互模式,引入数据模型类来查询一下看看。...: 那么下面使用django的模型查询看看,如下: In [6]: serverinfo = ServerInfo.objects.filter( id__exact = 1 ) In [7]: for

    4.1K10

    Django-model进阶(中介模型,查询优化,extra,整体插入)

    你可以将过滤器保持一整天,直到查询集 需要求值时,Django 才会真正运行这个查询。 ?...在一个新创建的查询集中,缓存为空。首次对查询集进行求值 —— 同时发生数据库查询 ——Django 将保存查询的结果到查询集的缓存中并返回明确请求的结果(例如,如果正在迭代查询集,则返回下一个结果)。...接下来对该查询集 的求值将重用缓存的结果。 请牢记这个缓存行为,因为对查询集使用不当的话,它会坑你的。...对于这些情况,Django 允许你指定一个中介模型来定义多对多关系。 你可以将其他字段放在中介模型里面。源模型的ManyToManyField 字段将使用through 参数指向中介模型。...的查询语法难以简单的表达复杂的 WHERE 子句,对于这种情况, Django 提供了 extra() QuerySet修改机制 — 它能在 QuerySet生成的SQL从句中注入新子句 extra可以指定一个或多个

    1.6K70

    Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据

    参考文献 官方文档 上一篇文章讲述了Django 2.1.7 创建应用模板,基本已经理解了Django 2.1.7 框架下如何调用模板,并且渲染数据。...Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的...Django简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计。...它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。...,如果不清楚数据库模型操作的,可以参见我前面的文章Django 2.1.7 基于默认sqlite3 模型设计 以及 数据操作。

    96750

    Django中数据库的相关操作

    ) 2)模型类.objects.filter().delete() HeroInfo.objects.filter(id=14).delete() 查询集 QuerySet 1 概念 Django的ORM...查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。...对查询集可以再次调用过滤器进行过滤,如 BookInfo.objects.filter(bread__gt=30).order_by('bpub_date') 也就意味着查询集可以含有零个、一个或多个过滤器...情况一:如下是两个查询集,无法重用缓存,每次查询都会与数据库进行一次交互,增加了数据库的负载。...book.id for book in BookInfo.objects.all()] [book.id for book in BookInfo.objects.all()] 情况二:经过存储后,可以重用查询集

    2.2K50

    【愚公系列】2022年01月 Python教学课程 42-Django框架之ORM中查询详解

    QuerySet 1 概念 Django的ORM中存在查询集的概念。...查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。..., ]> 也就意味着查询集可以含有零个、一个或多个过滤器。...使用同一个查询集,第一次使用时会发生数据库的查询,然后Django会把结果缓存下来,再次使用这个查询集时会使用缓存的数据,减少了数据库的查询次数。...情况一:如下是两个查询集,无法重用缓存,每次查询都会与数据库进行一次交互,增加了数据库的负载。

    1.9K40

    Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

    (字段查询条件,双下划线查询) 常见形式 注意点 书写格式 lookuptype 查找类型分类整理 单词 特别点 本文将翻译 django 官网的 模型层的 QuerySet 章节 文档版本:1.11...缓存中,并返回查询出来的结果集。...,具体来说,这意味着使用数组切片或者索引限制查询结果集将不会保存缓存。...同样,如果有多个对象同时满足这个条件,那么 django 将会报错:MultipleObjectsReturned,这个报错也是执行的模型类的一个属性。...用 django 表模型类创建的表会自动加上 app 的前缀(显然这里的 app 叫 blog) lookuptype 查找类型分类整理 此部分为伪代码,仅演示这些字段查询的功能用法以及对应 SQL

    2.9K20

    python测试开发django-169.过滤器django-filter 入门使用

    前言 在管理后台查询的时候,经常有需要查询包含某个内容,按时间段查询,或者商品价格大于多少,小于多少各种查询条件。 django-filter 过滤器专门解决这种查询的问题。...python:3.5、3.6、3.7、3.8 django:2.2、3.0、3.1 DRF : 3.10+ 简单入门 Django-filter 提供了一种基于用户提供的参数过滤查询集的简单方法。...您可以使用 Django 的__语法遍历“关系路径”来过滤相关模型上的字段。 例如:manufacturer__name。 lookup_expr: 过滤时使用的字段查找。...Django 的查找参考中提供了查找表达式的详细说明。django-filter 支持包含转换和最终查找的表达式。...此外,字典可用于为每个字段指定多个查找表达式: import django_filters class ProductFilter(django_filters.FilterSet): class

    2.3K20

    Django—模型

    ,在管理器上调用某些过滤器方法会返回查询集,查询集可以含有零个、一个或多个过滤器。...缓存:使用同一个查询集,第一次使用时会发生数据库的查询,然后把结果缓存下来,再次使用这个查询集时会使用缓存的数据。 查询集的缓存 每个查询集都包含一个缓存来最小化对数据库的访问。...在新建的查询集中,缓存为空,首次对查询集求值时,会发生数据库查询,django会将查询的结果存在查询集的缓存中,并返回请求的结果,接下来对查询集求值将重用缓存中的结果。...情况一:如下是两个查询集,无法重用缓存,每次查询都会与数据库进行一次交互,增加了数据库的负载。...情况二:经过存储后,可以重用查询集,第二次使用缓存中的数据。

    6.1K21
    领券