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

ORM常用操作

一般操作 专业官网文档 必会13条查询 all(): 查询所有结果 filter(**kwargs): 它包含了与所给筛选条件相匹配的对象...所有提供给查询函数的参数(关键字参数或Q 对象)都将”AND”在一起。但是,如果出现Q 对象,它必须位于所有关键字参数的前面。 例如:查询出版年份是2017或2018,书名中带物语的所有书。...2. select_related使用SQL的JOIN语句进行优化,通过减少SQL查询的次数来进行优化、提高性能。...def annotate(self, *args, **kwargs) # 用于实现聚合group by查询 from django.db.models import Count, Avg...终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_loggers

2K10

Django学习笔记之Django ORM相关操作

一般操作 详细请参考官方文档 必知必会13条 all(): 查询所有结果 filter(**kwargs): 它包含了与所给筛选条件相匹配的对象...我们使用原生SQL语句,按照部分分组求平均工资: select dept,AVG(salary) from employee group by dept; ORM查询: from django.db.models...所有提供给查询函数的参数(关键字参数或Q 对象)都将"AND”在一起。但是,如果出现Q 对象,它必须位于所有关键字参数的前面。 例如:查询出版年份是2017或2018,书名中带物语的所有书。...def annotate(self, *args, **kwargs) # 用于实现聚合group by查询 from django.db.models import Count, Avg...终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_loggers

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

    Django ORM那些相关操作

    first(): 返回第一条记录 last(): 返回最后一条记录 exists():...示例1: 查询作者名是小仙女或小魔女的 models.Book.objects.filter(Q(authors__name="小仙女")|Q(authors__name="小魔女")) 你可以组合& ...所有提供给查询函数的参数(关键字参数或Q 对象)都将"AND”在一起。但是,如果出现Q 对象,它必须位于所有关键字参数的前面。 例如:查询出版年份是2017或2018,书名中带物语的所有书。...# 更高灵活度的方式执行原生SQL语句 # from django.db import connection, connections # cursor = connection.cursor()...终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_loggers

    2.3K60

    05.Django基础五之django模型层(一)单表操作

    CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数. IntegerField #用于保存一个整数....#它们通常用于URLs 若你使用 Django 开发版本,你可以指定 maxlength. 若 maxlength 未指定, Django 会使用默认长度: 50....,也只能更新一条数据,当只有一条数据更新时推荐使用此方法,另外此方法还有一个好处,我们接着往下看 具有auto_now属性字段的更新 我们通常会给表添加三个默认字段 - 自增ID,这个django已经默认加了...2. select_related使用SQL的JOIN语句进行优化,通过减少SQL查询的次数来进行优化、提高性能。...def annotate(self, *args, **kwargs) # 用于实现聚合group by查询 from django.db.models import Count, Avg

    3K10

    Django之ORM数据库

    ,实际却删除了三条,因为我们删除的这本书在Book_authors表中有两条相关信息,这种删除方式就是django默认的级联删除。...(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 # count(): 返回数据库中匹配查询(QuerySet...所以使 #用iterator()的时候要当心,确保你的代码在操作一个大的queryset时没有重复执行查询 总结: queryset的cache是用于减少程序对数据库的查询,在通常的使用下会保证只有在需要的时候才会查询数据库...对象查询,单表条件查询,多表条件关联查询 #--------------------对象形式的查找-------------------------- # 正向查找 ret1=models.Book.objects.first...,从而得出总计值(也可以是平均值或总和),即为查询集的每一项生成聚合。

    2.6K10

    【Django】 开发:数据库操作和后台管理

    (条件) 作用: 返回满足条件的唯一一条数据 说明: 该方法只能返回一条数据 查询结果多余一条数据则抛出,Model.MultipleObjectsReturned 异常 查询结果如果没有数据则抛出...删除单个MyModel对象或删除一个查询结果集(QuerySet)中的全部对象都是调用 delete()方法 删除单个对象 步骤 查找查询结果对应的一个数据对象 调用这个数据对象的 delete ()...return HttpResponse('请查看服务器端控制台获取结果') F对象 一个F对象代表数据库中某条记录的字段的信息 作用: 通常是对数据库中的字段值在不获取的情况下进行操作 用于类属性...示例 from django.db.models import Q # 查找清华大学出版社的书或价格低于50的书 Book.objects.filter(Q(market_price__lt=50) |...=80) -> 获取book对应的作者中年龄大于80岁的作者的信息 通过 Author 查询对应的所有的 Book【反向】 Django 会生成一个反向属性 book_set 用于表示对对应的 book

    4.1K40

    django 1.8 官方文档翻译: 2-5-7 自定义查找

    自定义查找 New in Django 1.7. Django为过滤提供了大量的内建的查找(例如,exact和icontains)。这篇文档阐述了如何编写自定义查找,以及如何修改现存查找的功能。...name" 'Jack' 这条SQL是后端独立的,所以我们并不需要担心不同的数据库。 实现它需要两个步骤。首先我们需要实现这个查找,然后我们需要告诉Django它的信息。...Lookup作用于两个值,lhs和rhs,分别是左边和右边。左边的值一般是个字段的引用,但是它可以是任何实现了查询表达式API的对象。右边的值由用户提供。...最后我们用将这些部分组合成SQL表达式,然后将所有参数用在查询中。然后我们返回一个元组,包含生成的SQL字符串以及参数。...当编译一个查询的时候,Django首先寻找as_%s % connection.vendor方法,然后回退到 as_sql。

    50030

    django入门:数据模型

    正文 上一部分我们介绍了《django环境和项目的搭建》,以及数据库的配置,那这一部分我们介绍和数据库相关方面的知识 -- 模型 创建 django 模型 我们需要在 "blog" 应用下的 models.py...(name='test category') c.name = 'new test category' c.save() 删除数据库数据 对存在数据库中的数据进行删除,可以通过如下操作进行 # 删除某条特定的数据...数据库操作 API https://docs.djangoproject.com/en/1.10/ref/models/querysets/ 使用原生 SQL 语句操作数据库 django 支持使用原生语句操作数据库...from django.db import connection cursor = connection.cursor() # 原生 SQL 语句放在 execute 中使用 cursor.execute...("SELECT c.id, c.name FROM blog_category as c") # 获取查询到的第一个数据 row = cursor.fetchone() # 获取全部查询到的数据 rows

    83710

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

    目录 Making queries 进行查询 创建一个对象(一条数据记录) 保存修改的表对象 保存外键字段或多对多字段(ForeignKey or ManyToManyField fields) Retrieving...(字段查询条件,双下划线查询) 常见形式 注意点 书写格式 lookuptype 查找类型分类整理 单词 特别点 本文将翻译 django 官网的 模型层的 QuerySet 章节 文档版本:1.11...(条件)的,多个查询(关键字)参数以逗号间隔,对应到 SQL 语句中是 AND 连接,如果你想执行更多复杂的操作(比如 OR 或)可以使用 Q 对象 Q对象 的使用 from django.db.models...(字段查询条件,双下划线查询) 此部分参考文档: django官网 字段查找(field-lookups) 字段查找(field-lookups)对应的是 SQL 语句中的 WHERE 条件,一般放在...用 django 表模型类创建的表会自动加上 app 的前缀(显然这里的 app 叫 blog) lookuptype 查找类型分类整理 此部分为伪代码,仅演示这些字段查询的功能用法以及对应 SQL

    2.9K20

    Django学习笔记之Queryset详解

    Manager定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己的manager,增加表级方法;QuerySet:Manager类的一些方法会返回...QuerySet实例,QuerySet是一个可遍历结构,包含一个或多个元素,每个元素都是一个Model 实例,它里面的方法也是表级方法,前面说了,Django给我们提供了增加表级方法的途径,那就是自定义...=等符号,这些符号分别用__gt,__lt,~Q或exclude(),不过对于!=,建议使用Q查询,更不容易出错。...select_related()不能用于OneToMany的反向连接,和ManyToMany,这些都是model的一条记录对应关联表中的多条记录。...select_related是用select ……join来返回关联的表字段,而prefetch_related是用多条SQL语句的形式查询,一般,后一条语句用IN来调用上一句话返回的结果。

    2.7K30

    django 1.8 官方文档翻译: 2-2-3 查找 API 参考

    查找 API 参考 New in Django 1.7. 这篇文档是查找 API 的参考,Django 用这些API 构建数据库查询的WHERE 子句。...Django 有两个类遵循查询表达式API,且Django 所有内建的查找都继承自它们: Lookup:用于查找一个字段(例如field_name__exact 中的exact) Transform:用于转换一个字段...connection是用于执行查询的连接。 调用expression.as_sql()一般是不对的 – 而是应该调用compiler.compile(expression)。...当一个表达式经过compiler.compile()编译之后, Django会首先尝试调用as_vendorname(),其中vendorname是用于执行查询的后端供应商。...它可以是个简单的值,也可以是在SQL中编译的一些东西,比如 F() 对象或者QuerySet。 lookup_name 查找的名称,用于在解析查询表达式的时候识别它。

    63140

    《HelloGitHub》第 61 期

    Zstd 的压缩比接近 lzma、lzham 和 ppmx,并且比 lza 或 bzip2 性能更好。在相似的压缩比情况下,它解压缩的速度比其他的算法都要快。...拥有查询、过滤、去重、分析等功能,可以把杂乱的数据变成“整洁”的电子表格,还能够将结果导出成多种格式的文件。不会编程和 SQL 的小伙伴们,也可以轻松分析海量数据啦! ?...可用于动画学算法、制作代码讲解视频等场景 ?...GitHub 地址:https://github.com/dwisiswant0/apkleaks 23、graphene-django:让你轻松地将 GraphQL 整合到 Django 项目的库 GitHub...地址:https://github.com/graphql-python/graphene-django Rust 项目 24、fselect:用类 SQL 的命令查找文件的命令行工具 fselect

    93340

    Django中ORM操作

    来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 Django orm的优势: Django的orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句;所有使用Django...- 参数: protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6" unpack_ipv4, 如果指定为True,则输入...操作 # query_set缓存机制1次数据库查询结果query_set都会对应一块缓存,再次使用该query_set时,不会发生新的SQL操作; #这样减小了频繁操作数据库给数据库带来的压力...中的orm的时候,我们可以把一对多,多对多,分为正向和反向查找两种方式。...正向查找:ForeignKey在 UserInfo表中,如果从UserInfo表开始向其他的表进行查询,这个就是正向操作,反之如果从UserType表去查询其他的表这个就是反向操作。

    4.8K10

    Django的Manager和QuerySet

    可以根据给定参数缩小查询结果量。在 SQL 的层面上, QuerySet 对应 SELECT 语句,而filters对应类似 WHERE 或 LIMIT 的限制子句。...需要注意的是Managers 只能通过模型类访问,而不是通过模型实例,目的是强制分离 “表级” 操作和 “行级” 操作。 什么时候QuerySet被执行?...在Django的文档中,明确的告诉了开发者,什么时候QuerySet被执行。因为这影响到SQL执行效率。...QuerySet 类具有两个可用于自省的公开属性: 可以返回QuerySet对象的QuerySet方法 前文所述的看起来做了3次SQL查询,实际上只有一次。...字段查找 由于字段查询非常多,也非常常用,本文不进行说明。请直接参考Django字段查询 参考资料: 执行查询 QuerySet API参考 管理器

    1.1K30
    领券