11.Django数据库操作(查)
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数据库操作(查)的更多相关文章
- Django数据库操作(增删改查)
Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...
- 从命令行运行django数据库操作
从命令行运行django数据库操作,报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_T ...
- Django 数据库操作
Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...
- django数据库操作和中间件
数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...
- Django数据库操作
刚学到Django的数据库操作,把它记录下来,方便以后查看: 在Django中定义数据库表,并使用Django提供的方法来对数据库进行操作(增.删.改.查) 1.定义3个数据库表: class Gro ...
- django数据库操作-增删改查-多对多关系以及一对多(外键)关系
一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...
- 转: django数据库操作-增删改查-多对多关系以及一对多(外键)关系
原文链接:http://blog.csdn.net/u010271717/article/details/22044415 一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model ...
- django 数据库操作详解
Django配置使用mysql数据库 修改 settings.py 中的 DATABASES 注意:django框架不会自动帮我们生成mysql数据库,所以我们需要自己去创建. DATABASES ...
- Python Django 数据库操作
1. 建立app 在自己的工程项目目录下输入: python manage.py startapp myapp(你想建立的app名称) 建立一个叫myapp的app 这样,在你的工程项目目录下会出现一 ...
随机推荐
- 开源jabber(XMPP)架设内部即时通讯服务的解决方案
Jabber 是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用. XMPP(可扩展消息处理现场协议)是基于可扩展 ...
- J2EE环境安装配置
在下载,安装前先说下以下几个概念JDK,SDK,JRE,JVM ◆JDK Java Develop Kit (Java 开发包) ◆SDK Software Develop kit, 曾经JDK叫做J ...
- httpModules 与 httpHandlers
ASP.NET对请求处理的过程:当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给ASPNET_ISAPI.dll,AS ...
- Java除法结果带小数、进一法的实现 Java问题通用解决代码
http://blog.csdn.net/windone0109/article/details/5355379进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍 ...
- Pycharm中的scrapy安装教程
在利用pycharm安装scrapy包是遇到了挺多的问题.在折腾了差不多折腾了两个小时之后总算是安装好了.期间各种谷歌和百度,发现所有的教程都是利用命令行窗口安装的.发现安装scrapy需要的包真是多 ...
- Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform
Expression构建DataTable to Entity 映射委托 1 namespace Echofool.Utility.Common { 2 using System; 3 using ...
- PHP之十六个魔术方法详细介绍
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用.这里进行详细介绍,感兴趣的小伙伴们可以参考一下. PHP中把以两个下划线__开头 ...
- pip或者anacnda安装opencv以及opencv-contrib
一条命令就可以搞定: pip install opencv-contrib-python opencv-python 或者: pip install opencv-contrib-python== ...
- html 绘图阴影和透明度
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- iOS系列译文:整洁的表视图代码
本文由 伯乐在线 - christian 翻译自 Florian Kugler.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 表视图是一个非常万能的iOS应用程序构建模块.因此,有很多与表视图直 ...