QuerySet常用方法
使用 connection.queries 可以查看sql语句
filter 将满足条件的结果返回,返回值为QuerySet对象
exclude 将满足条件的结果过滤掉,返回值为QuerySet对象
annotate 给QuerySet中的每一个对象都添加一个查询表达式,(Q,F,聚合函数)的字段
order_by 安装某个字段进行排序,默认为从小到大排序,如果想要重大到小可以在字段前加“-”,需要注意order_by可以传递多个参数,会按照先后级别进行排序,而且order_by还可以用annotate新增的字段来排序,注意:order_by重复调用会只会保存最后一个。
values:提取需要哪些字段,默认会把全部都提取出来。返回的结果是QuerySet,但是其中包裹的不是模型,而是字典,如果想要提取关联数据,那么可以通过F表达式来完成。values也可以使用聚合函数
values_list 提取需要字段,返回QuerySet,其中包裹的元组,如果数据只有一条,则可以使用flat=True进行扁平化处理,直接返回结果
all 方法:返回全部数据(返回包裹对象的QuerySet)
select_related : 可以将关联的对象一起查询出来,只能用于外键连接的形式(一对多或者一对一的形式)
prefetch_related : 使用的时候传入反向引用的时候调用的名称默认为 filed_set,使用这个方式可以用来查询多对一或者多对多的方式,也可以用来查询一对一或者一对多的,但是不推荐。
defer : 过滤掉不需要的字段,返回值是一个包裹着模型的QuerySet
only : 提取某些字段,返回一个包裹模型的QuerySet
get : 直接返回对象,只能返回一条数据,如果返回数据超过一条就会报错,如果没有匹配到任何数据也会报错。
create : 用于增加一条数据,并且将数据保存在数据库中,相当于先创建数据,然后调用save方法
get_or_create : 如果给定的条件存在数据就查找返回,如果不存在就创建一个,然后在返回,返回结果是一个元组,元组中两个内容,第一个是模型对象,第二个是bool值,如果没有创建返回False,如果创建了返还True。
bulk_create :可以一次性创建多条数据。
count :获取满足条件的数据的个数
first,last 分别返回QuerySet中第一条和最后一条数据
exists : 判断数据是否存在,存在返回True,不存在返回False
distinct : 去重,默认按照全部字段判断。注意如果和order_by同时使用会失效
update :更新数据
delete : 删除数据,需要注意:字段中on_delete的级联删除方式

QuerySet的常用方法的更多相关文章

  1. 89.QuerySet API常用方法使用详解:count,first,last,aggregate,exists

    1.count():计算数据的个数. 计算数据的个数可以使用count,在python中使用len()也可以计算数据的个数,但是相对来说效率没有使用count()效率高,因为在底层是使用select ...

  2. 79.常用的返回QuerySet对象的方法使用详解: filter, exclude,annotate

    返回新的QuerySet的常用方法: 1.filter: 将满足条件的数据提取出来,返回一个新的QuerySet 以下所使用的模型article,category,定义模型models.py文件中,示 ...

  3. Django笔记&教程 5-2 进阶查询——Queryset

    Django 自学笔记兼学习教程第5章第2节--进阶查询--Queryset 点击查看教程总目录 Queryset相关内容其实蛮多的,本文只介绍一些常用的,详细的推荐查询官方文档:queryset-a ...

  4. Django之Model(一)--基础篇

    0.数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库.Django连接数据库默认编码使用UTF8,使用中文不需要特别设置. sqlite djang ...

  5. python面试知识总结

    1. 先做自我介绍 2. 做Python几年了?为什么选择Python?3. 学历?大学什么专业?4. 除了Python以外对其他语言有没有了解?5. 你对Python这门语言的看法?6. 在学习Py ...

  6. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  7. Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API

    用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...

  8. Django admin的常用方法

    一.HTTP 1.主页面 http://127.0.0.1:8000/admin/ 2.查询页面 http://127.0.0.1:8000/admin/app01/book/ 3.增加页面 http ...

  9. 实训第八天 有关python orm 的学习记录 常用方法01

    沿用第七天的数据库,数据库现在是这样的: 配置好主路由include子路由 子路由引入views 在views页面定义test测试请求如下: def test(request): # 1.all()方 ...

随机推荐

  1. Mac搭建本地服务器并映射到外网

    最近在学习Html,小有进步变想着写一个浪漫的静态页面给女朋友浪漫一下,那么问题就来了,如何把我的网页让对网络一窍不通的女朋友看到,所以便想到了是用自己电脑作为服务器的想法.百度以后整理如下: 首先搭 ...

  2. opencv —— threshold、adaptiveThreshold 固定阈值 & 自适应阈值 进行图像二值化处理

    阈值化 在对图像进行处理操作的过程中,我们常常需要对图像中的像素做出取舍与决策,直接剔除一些低于或高于一定值的像素. 阈值分割可以视为最简单的图像分割方法.比如基于图像中物体与背景之间的灰度差异,可以 ...

  3. 【Java】基于RXTX的Java串口通信

    本篇内容参考转载自https://blog.csdn.net/kong_gu_you_lan/article/details/80589859 环境搭建 下载地址:http://fizzed.com/ ...

  4. Umi 小白纪实(一)—— 创建项目&常用配置

    umi 是一个企业级 react 应用框架,也是蚂蚁金服的底层前端框架 <蚂蚁金服的前端框架和工程化实践> 一.安装脚手架 在创建项目之前,需要保证有 node 8.10 以上的环境 可以 ...

  5. vector内存分配简单介绍

    众所周知,vector的size()其实并不代表它占用的空间,它实际占用空间可以用capacity()查看 众所周知,push_back()时,如果size==capacity则会使capacity从 ...

  6. Q&A in 2018 - Q1

    Those questions Simply write down questions that ever frustrated me a little: How to convert unix ti ...

  7. 【spring boot】SpringBoot初学(2.2)– SpEL表达式读取properties属性到Java对象

    前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置:(注意测试方法在,test下的SpelValueApplicationTest.c ...

  8. Error: cannot fetch last explain plan from PLAN_TABLE

    最近遇到了错误"Error: cannot fetch last explain plan from PLAN_TABLE",于是稍微研究了一下哪些场景下碰到这种错误,具体参考下面 ...

  9. Spark学习之路 (八)SparkCore的调优之开发调优[转]

    前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作 ...

  10. 如何调试TaskPaper的JavaScript上下文?

    Mac 上的纯文本 GTD 工具TaskPaper for Mac(纯文本任务管理器)是一款适用于Mac操作系统的软件.如何调试TaskPaper的JavaScript上下文?[dl]15-1068[ ...