django.db.models.query.QuerySet
1.可迭代
2.可切片

官方文档:https://docs.djangoproject.com/en/1.9/ref/models/querysets/

相关API
1.get(**kwargs)

  解释:返回与筛选条件相匹配的Model对象,返回结果有且只有一个。

  说明:如果符合条件的对象多于一个抛出MultipleObjectsReturned异常,如果没有找到抛出DoesNotExist异常

  语法:ModelName.objects.get(itemName=itemNameValue)

  例子:Author.objects.get(id=1)

2.all()

  解释:查询所有结果(懒加载),当查询的时候并不真实发送sql语句,用的时候才会真的去查询

  语法:ModelName.objects.all()

  例子:Author.objects.all(id=1)

3.filter(**kwargs)

  解释:包含了与所给的筛选条件相匹配的QuerySet

  语法:ModelName.objects.filter(itemName=itemNameValue)

  例子:Author.objects.filter(id=1)

4.exclude(**kwargs):

  解释:包含了与所给的筛选件不匹配的QuerySet,于filter正好相反

  语法:ModelName.objects.exclude(itemName=itemNameValue)

  例子:Author.objects.filter(id=1)

5.order_by(*fields)

  解释:对查询结果进行排序

  语法:ModelName.objects.all().order_by("itemName")

  例子:Author.objects.all().order_by("id")

6.reverse()

  解释:对查询结果反向排序

  语法:ModelName.objects.all().order_by("itemName").reverse()

  例子:Author.objects.all().order_by("id")

7.distinct()

  解释:对查询结果去重

  语法:ModelName.objects.all().distinct()

  例子:Author.objects.all().distinct()

8.values(*fields)

  解释:返回一个ValuesQuerySet(一个特殊的QuerySet)

  说明:运行后得到的不是一系列model的实例对象,而是一个可迭代的字段序列

  语法:ModelName.objects.filter(name=value).values("name","name")

  例子:Author.objects.filter(id=1).values("name","id")

9.values_list(*fields)

  解释:与values相似只是返回的是一个元组

  语法:ModelName.objects.filter(name=value).values_list("name","name")

  例子:Author.objects.filter(id=1).values_list("name","id")

10.count()

  解释:返回数据库中匹配查询的对象数量

  语法:ModelName.objects.filter(itemName=itemNameValue).count()

  例子:Author.objects.filter(name="xiaol").count()

11.first()/last()

  解释:第一条记录/最后一条记录

  语法:ModelName.objects.filter(itemName=itemNameValue).first()

  例子:Author.objects.filter(name="xiaol").last()

关联查询:

  方法:使用两个下划线(__)可以进行关联查询

  例子:查询AutherDetail的信息

  语法:AuthorDetail.objects.filter(id="2").values("sex","email", "author__name")

聚合查询:需要引入from django.db.models import *

  方法:使用aggreagte关键字

  用法:xxx.filter(查询条件).aggregate(别名=聚合函数('聚合字段'))

  语法:Author.objects.filter(name="xiaol").aggregate(myCount=Count('id'))

分组查询:需要引入from django.db.models import *

  方法:使用aggreagte关键字

  用法:xxx.filter(分组字段).annotate(分组后操作)

  语法:Author.objects.filter(name="xiaol").annotate(myCount=Count('id'))

11.Django数据库操作(查)的更多相关文章

  1. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

  2. 从命令行运行django数据库操作

    从命令行运行django数据库操作,报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_T ...

  3. Django 数据库操作

    Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...

  4. django数据库操作和中间件

    数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...

  5. Django数据库操作

    刚学到Django的数据库操作,把它记录下来,方便以后查看: 在Django中定义数据库表,并使用Django提供的方法来对数据库进行操作(增.删.改.查) 1.定义3个数据库表: class Gro ...

  6. django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...

  7. 转: django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    原文链接:http://blog.csdn.net/u010271717/article/details/22044415 一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model ...

  8. django 数据库操作详解

    Django配置使用mysql数据库 修改 settings.py 中的 DATABASES  注意:django框架不会自动帮我们生成mysql数据库,所以我们需要自己去创建. DATABASES ...

  9. Python Django 数据库操作

    1. 建立app 在自己的工程项目目录下输入: python manage.py startapp myapp(你想建立的app名称) 建立一个叫myapp的app 这样,在你的工程项目目录下会出现一 ...

随机推荐

  1. Jenkins 无法下载插件的解决办法

    有时候在安装插件时可能会出现下图的问题: 这应该是由于天朝的墙导致的,所以笔者就用了手动安装的方式 到https://wiki.jenkins-ci.org/display/JENKINS/Plugi ...

  2. centos 7 查看系统/硬件信息及运维常用命令+联想Y430P无线网卡驱动安装

     centos 7 查看系统/硬件信息及运维常用命令 当前环境:联想Y430P  CentOS 7.3 [root@yan-001 ~] # uname -a # 查看内核/操作系统/CPU信息的Li ...

  3. Html5 Canvas之arc函数图示详解

    在不变换坐标系的情况下,arc函数画弧的方向如下图所示: 举例来说,arc(x,y,r,Math.PI/6,Math.PI/3,false);是以x,y为圆心,r为半径,从x正轴顺时针30度为起始角, ...

  4. java学习笔记——大数据操作类

    java.math包中提供了两个大数字操作类:BigInteger(大整数操作类) BigDecimal(大小数操作类). 大整数操作类:BigInteger BigInteger类构造方法:publ ...

  5. MySQL架构组成之物理文件组成

    一.日志文件 1.错误日志:Error Log   内容:MyQL Server 执行过程中全部较为严重的警告和错误信息,以及MySQL Server 每次启动和关闭的具体信息. 路径:默认存放位置在 ...

  6. es6 - array for-chrome

    // 去重复 Array.from(new Set([1, 1, 2, 3])); // [1, 2, 3] console.log(Array.from(new Set([1, 1, 2, 3])) ...

  7. Linux Java开发环境

    一.旧版本JDK卸载 1.卸载系统自带JDK版本 #rpm -qa|grep gcj 查看到如下信息,如图所示:   进行卸载默认安装JDK: #rpm -e --nodeps java-1.4.2- ...

  8. ["1", "2", "3"].map(parseInt) 结果

    // 下面的语句返回什么呢: ["1", "2", "3"].map(parseInt); // 你可能觉的会是[1, 2, 3] // 但 ...

  9. AngularJS---Unknown provider: $routeProvider

    AngularJS路由报错: Unknown provider: $routeProvider 根据先知们的指引,在网上爬贴,有翻到官方的解决文章. 原来在AgularJS1.2.0及其之后的版本中, ...

  10. 关于TCP/IP,这十个问题你都知道,就入门了!

    关于TCP/IP,必知必会的十个问题 本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养.   TCP/IP十个问题 一.TCP/IP模型 TCP/IP ...