ORM查询(细致):
1.正向查找
ret1=model.Book.objects.first()
print(ret1.title)
print(ret1.price)
print(ret1.publisher)
print(ret1.publisher.name) #因为一对多的关系所以ret1.publisher是一个对象,而不是一个queryset集合
2.反向查找:通过_set创建关联再查询
ret2=models.Publish.objects.last()
print(ret2.name)
print(ret2.city)
print(obj.book_set.values("title").distinct())
如何拿到与它绑定的Book对象呢?
print(ret2.book_set.all()) #ret2.book_set是一个queryset集合
3.了不起的下划线(__)之单表条件查询
models.Tb1.objects.filter(id__lt=10,id__gt=1) #获取id大于1且小于10
models.Tb1.objects.filter(id__in=[11,22,33]) #获取id等于11、22、33的数据
models.Tb1.objects.exclude(id__in=[11,22,33]) # not in
models.Tb1.objects.filter(name__contains="ven")
models.Tb1.objects.filter(name__icontains="ven") # icontains 大小写不敏感
models.Tb1.objects.filter(id__range=[1,2])
startswith,istartswith,endswith,iendswith(以...开头,以...结尾)
4.了不起的下划线(__)之多表条件关联查询
.distinct()去重
条件里面可以通过 , 添加其它条件
models.Publish.objects.filter(book__title="python").values("name").distinct()
models.Publish.objects.filter(book__title="python",book_red='red').distinct().values("name")
` values()方法里面也可以查找显示关联表的内容__也可用
聚合查询aggregate():一个对象--子句的参数描述叙述了我们想要计算的聚合值
分组查询annotate():多个对象--是QoerySet的一个终止子句,意思是说,他返回一个包含一些键值对的字典。键的名称是
聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。
如果你想要为聚合值指定一个名称,可以向聚合子句提供它
Avg('')取平均值
5.F查询与Q查询
调用 from django.db.models import F 对列的数值进行操作 无法用__进行修改值
models.Publish.objects.all().update(price=F("price")+20)
调用 from django.db.models import Q 很重要
obj=models.Book.objects.filter(Q(price__gt=50) & (Q(id=3) | Q(title='php')))[0]

ORM查询(细致):的更多相关文章

  1. Django 源码小剖: Django ORM 查询管理器

    ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...

  2. Django ORM 查询管理器

    Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...

  3. ORM查询条件

    模板: from django.db import models class Article(models.Model): title = models.CharField(max_length=20 ...

  4. Django之ORM查询复习与cookie

    ORM查询总结: models.Book.objects.filter(**kwargs): querySet [obj1,obj2] models.Book.objects.filter(**kwa ...

  5. ORM( ORM查询13种方法3. 单表的双下划线的使用 4. 外键的方法 5. 多对多的方法 ,聚合,分组,F查询,Q查询,事务 )

    必知必会13条 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或 ...

  6. Python学习---ORM查询之基于对象的正向/反向/聚合/分组/Q/F查询

    ORM查询之基于对象的正向查询与反向查询 对象形式的查询 # 正向查询 ret1=models.Book.objects.first() print(ret1.title) print(ret1.pr ...

  7. ORM查询练习

    ORM查询练习 Django ORM  ORM查询的练习题 ORM代码 from django.db import models # Create your models here. class Pu ...

  8. Django框架 之 ORM查询操作详解

    Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Py ...

  9. ORM 查询练习

    目录 ORM 查询练习 表结构 练习题 测试数据 准备 参考答案 ORM 查询练习 表结构 # 书 class Book(models.Model): title = models.CharField ...

随机推荐

  1. R语言计算IV值

    更多大数据分析.建模等内容请关注公众号<bigdatamodeling> 在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,R语言计算IV值的代码如下: Ca ...

  2. unix环境高级编程中的err_quit,err_sys用到的知识点

    unix环境高级编程中的err_quit,err_sys 环境 os CentOS release 6.7 (Final) gcc 4.4.7 c语言预备知识 标准输入输出文件 在linux系统中一切 ...

  3. JS页面跳转加密解密URL参数

    页面跳转加密参数 window.location.href="foot.html?"+btoa(encodeURIComponent("goodid="+goo ...

  4. rails 创建项目、创建controller、model等

    rails2之前创建新项目: rails3以及更高版本创建新项目:rails new webname 创建数据表model:rails g model user name:string sex:str ...

  5. 【FastJson】使用学习

    FastJson使用学习 1.json转object.object转json List<CompanyLoopPicture> list = new ArrayList<Compan ...

  6. Java String indexOf()方法

    public class Test { public static void main(String[] args) { String s = "xXccxxxXX"; // 从头 ...

  7. 基于windows server 2016和sqlserver 2016 AlwaysOn的群集配置

    文档:基于windows server 2016和sqlserver 2...链接:http://note.youdao.com/noteshare?id=4f07c1c3f7d0e32b7631d7 ...

  8. 敏捷开发--洞察敏捷模型,从PO的角度看敏捷产品管理

    转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo)       经常有人抱怨的一个问题:敏捷会让团队自组织,要求团队能“一方有难,八方支援”,但是为什么总感觉自己团队虽然实践了敏捷, ...

  9. kafka2.3.1+zookeeper3.5.6+kafka-manager2.0.0.2集群部署(centos7.7)

    一.准备三台服务器,配置好主机名和ip地址 二.服务器初始化:包括安装常用命令工具,修改系统时区,校对系统时间,关闭selinux,关闭firewalld,修改主机名,修改系统文件描述符,优化内核参数 ...

  10. Redis—数据备份与恢复

    https://www.cnblogs.com/shizhengwen/p/9283973.html https://blog.csdn.net/w2393040183/article/details ...