django学习-15.ORM查询方法汇总】的更多相关文章

1.前言 django的ORM框架提供的查询数据库表数据的方法很多,不同的方法返回的结果也不太一样,不同方法都有各自对应的使用场景. 主要常用的查询方法个数是13个,按照特点分为这4类: 方法返回值是可迭代对象QuerySet:all(),filter(),exclude(),order_by(),reverse(),values(),values_list(),distinct(): 方法返回值是单个对象:get(),first(),last(): 方法返回值是布尔值:exists(): 方法…
一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚合 # (1)计算所有图书的平均价格 from django.db.models import Avg, Sum, Count, Max, Min avg_price = models.Book.objects.all().aggregate(Avg("price")) print(avg…
Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操作 一.一般操作 必知必会 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <1> all():                 查询所有结果    <2> f…
DRF框架中链表数据通过ModelSerializer深度查询方法汇总 一.准备测试和理解准备 创建类 class Test1(models.Model): id = models.IntegerField(primary_key=True) test_2_id= models.ForeignKey(to='Test2',on_delete='id') #这里有的创建失败了哈哈忘了会自动补全id class Test2(models.Model): id = models.IntegerFiel…
ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行. QuerySet特点: <1>  可迭代的 <2>  可切片 <3>  惰性计算和缓存机制 例: info=models.table_name.objects.all()[0:5] #切片 info= mode…
一.一般操作 二.必知必会13条 返回QuerySet对象的方法有 特殊的QuerySet 返回具体对象的 返回布尔值的方法有 返回数字的方法 三.单表查询之神奇的双下划线 四.ForeignKey操作 4.1 正向查找 4.1.1 对象查找(跨表) 4.1.2 字段查找(跨表) 4.2 反向操作 4.2.1 对象查找 4.2.2 字段查找 五.ManyToManyField 5.1 class RelatedManager 方法 六.聚合查询和分组查询 6.1 聚合 6.2 分组 更多示例:…
models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) age = models.IntegerField() birthday = models.DateField(auto_now_add=True) 在数据库中添加几条数据 在 Python 脚本中调用 Dj…
一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models import User Obj = User.objects.filter(Q(name="Bob") | Q(age=28)) # 在用户表中查询name为 Bob 或者 age 为28的对象 二.使用 startwith 和 endswith 进行字段数据起始字符和结尾字符的条件查询 ob…
一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models import User Obj = User.objects.filter(Q(name="Bob") | Q(age=28)) # 在用户表中查询name为 Bob 或者 age 为28的对象 二.使用 startwith 和 endswith 进行字段数据起始字符和结尾字符的条件查询 ob…
定义表结构: class Host(models.Model): hostname = models.CharField(max_length=32) port = models.IntegerField() class HostAdmin(models.Model): username = models.CharField(max_length=32) email = models.CharField(max_length=32) host = models.ManyToManyField(H…