python - django (查询、聚合、分组)
#
"""
---- 正向查询按字段,反向查询按表名
一: 一对多
正向查询:(字段对象.关联表.查询字段)
x_obj = models.Book.objects.filter(xxx).first()
x_obj.publish.email
反向查询:(字段对象.要查询的表名小写_set.all())
x_obj = models.Publish.objects.filter(xxx).first()
for i in x_obj.book_set.all():
print(i)
二: 多对对
正向查询:(字段对象.关联表.all()) 查询所有
x_obj = modles.Bookobjects.filter(xxx).first()
for author in x_obj.authors.all():
print(author.name, author.age) 反向查询:(字段对象.关联表_set.all())
x_obj = modles.Author.objects.filter(xxx).first()
for book in x_obj_set.all():
print(book.title) 三:一对一
正向查询:(字段对象.关联表名.关联表名字段)
x_obj = modles.Author.objects.filter(xxx).first()
x_obj = authorDetail.telephone 反向查询:()
x_obj = modles.AuthorDetail.objects.filter(xxx).first()
x_obj.author.name 四:聚合/分组 聚合:
from django.db.models import Sum,Count,Avg
ret = models.Book.objects.all().aggregate(price=Sum('price')) 分组:
1. queryset对象.annotate()
2. annotate进行分组统计,按前面select 的字段进行 group by
3. annotate() 返回值依然是 queryset对象,增加了分组统计后的键值对 modles.dep.objects.values("name").annotate(c=Count('emp__name')).values('name','c')
# 查询 dep 表, 按name 分组 , 将 emp下的name字段计数,返回结果是 name字段 和 计数结果 modles.book.objects.values('id').annotate(c=Content( ))
"""#
直接执行原生的SQL语句,类似pymysql的用法
# from django.db import connection
# cursor = connection.cursor() # 获取光标,等待执行SQL语句
# cursor.execute("""SELECT * from person where id = %s""", [1])
# row = cursor.fetchone()
# print(row)
python - django (查询、聚合、分组)的更多相关文章
- day056-58 django多表增加和查询基于对象和基于双下划线的多表查询聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁
一.多表的创建 from django.db import models # Create your models here. class Author(models.Model): id = mod ...
- Django 多表查询练习题 Q查询 F查询 聚合 分组
-------------------------------------------------自己偷的懒,或许用加倍时间也补不回来,珍惜现在的拥有的时光,把我现在! 上节回顾 基于对象的跨表查询( ...
- python django查询12306火车票
逢年过节,想坐个高铁票,都得上12306去买票,但用过的都会发现,它会把临近站点的也筛出来了.但有时我们压根就不会考虑买到临近站点的. 另一方面,在购票高峰期,有可能你要的出发站到目的站都没有票了,这 ...
- Python - Django - ORM 聚合查询和分组查询
models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(p ...
- Django值聚合,分组,事物,cookie,session
1,聚合(aggregate):是queryset的一个 终止语句,它返回一个包含键值对的字典,键是的名称是聚合值的标识符,值是计算出来的聚合值,键的名称是按照字段和聚合函数自动生成出来的.用到的内置 ...
- SQL你必须知道的-查询聚合分组排序
use MySchoolTwo -- 简单查询 select * from Student -- 话说这种查询的效率要比 * 要高级点 select sId , sName , ...
- python django查询一周,一月,一年时间
首先是当前时间的确定,对于年月日,orm模型都有对应的方法直接查询,周是没有方法直接查询的,我是没有找到这个方法,只能间接的查询 1 2 3 now_time = datetime.datetime. ...
- python 之 Django框架(orm单表查询、orm多表查询、聚合查询、分组查询、F查询、 Q查询、事务、Django ORM执行原生SQL)
12.329 orm单表查询 import os if __name__ == '__main__': # 指定当前py脚本需要加载的Django项目配置信息 os.environ.setdefaul ...
- python全栈开发day68-ORM操作:一般操作、ForeignKey操作、ManyToManyField、聚合查询和分组查询、F查询和Q查询等
ORM操作 https://www.cnblogs.com/maple-shaw/articles/9403501.html 一.一般操作 1. 必知必会13条 <1> all(): 查询 ...
随机推荐
- Linux下指定so共享库的加载路径
转载地址:https://blog.csdn.net/zorelemn/article/details/52596293,做了部分修改 一.库文件的搜索路径: 1.在配置文件/etc/ld.so.co ...
- 实现不同分辨率、不同浏览器下高度自适应、iframe高度自适应
html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- 字典的学习2——参考Python编程从入门到实践
遍历字典 1. 遍历所有键值对 eg1: user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi',}for key, v ...
- 二十、网卡框架分析、虚拟网卡驱动和DM9621驱动分析
一.网络设备驱动的结构 网卡设备不同于字符设备和块设备, 网络设备并不对应于/dev目录下的文件,它存放在/sys/class/net目录下. Linux系统对网络设备驱动定义了四个层次: 1. 网络 ...
- 'telent' 不是内部或外部命令,也不是可运行的程序或批处理文件。
今天在Windows 7操作系统中安装了memcached内存缓存软件,本想借助Windows的telnet程序向memcached缓存管理系统中添加一些数据,可是命令输入后竟然出现了如下图这样的错误 ...
- Android—网络请求
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; ...
- NIO--ByteBuf
Nio 的ByteBuffer 和 Netty 的 ByteBuf 的区别: 1.ByteBuf 将 ByteBuffer的position 分解为:readIndex , writeIndex 因 ...
- 在论坛中出现的比较难的sql问题:17(字符分拆2)
原文:在论坛中出现的比较难的sql问题:17(字符分拆2) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下来 ...
- C#从零单排上王者系列---数据类型
从零单排系列简介 突然发现自己的基础不是很牢固,就买了一个<C#7.0的本质论>.本系列博客就是以此书为本,记录自己的学习心得,如果你的基础也不牢固,不如跟上博主一起学习成长呀! 本篇博客 ...
- 4_PHP流程控制语句_2_循环结构
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP流程控制共有3种类型:条件控制结构.循环结构以及程序跳转和终止语句. 4.2 循环结构 4.2.1 whil ...