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(): 查询 ...
随机推荐
- 自己实现CountDownLatch
自己实现的CountDownLatch ,只是模拟他的功能而已.jdk中的实现采用的是AQS public class MyCountDownLatch { private final int tot ...
- hdu 5418 题解
第一眼看到这题,哇,这不是我刚做完的题吗?大水题!然后 这题表面很水,实际上有点坑. 题意 求经过 $ 1 - n $(不能遗漏) 并且回到 $ 1 $ 的最短路. 在看这题之前我们可以来看下这题 最 ...
- Python08之分支和循环3(for、while循环)
一.for语句: for 目标 in 表达式: 循环体 i = "湖人总冠军" for each in i: print(each) 湖 人 总 冠 军 for each in i ...
- 关于NumPy的常用函数random.randint
np.random.randint(low, high=None, size=None, dtype='l') 该函数作用:用于产生离散均匀分布的整数 low:生成元素的最小值 high:生成元素的值 ...
- 音量调节条-封装通用的ProgressBar组件
import React, { Component } from 'react' import PropTypes from 'prop-types' import assign from 'obje ...
- React Hooks中父组件中调用子组件方法
React Hooks中父组件中调用子组件方法 使用到的hooks-- useImperativeHandle,useRef /* child子组件 */ // https://reactjs.org ...
- bootstrap栅格系统的container和row一些关系
container有个15px的padding,而我们设定的每个col也都有15px的padding,如果两者直接配合,那么就会产生30px的间距,导致内容和浏览器边框的距离较大,所以用row将所有的 ...
- Self寄宿
static void Main(string[] args) { //Assembly.Load("WebApplication1, Version=1.0.0.0, Culture=ne ...
- 字符串replace的理解和练习和配合正则表达式的使用
下面代码展示了(demo地址 https://codepen.io/peach_/pen/jONJjRY): 1.字符串replace的理解和练习和配合正则表达式的使用, 2.正则表达式学习 3.通过 ...
- CentOS 6.x 配置iptables
CentOS 6.x 配置iptables 来源 https://www.cnblogs.com/chillax1314/p/7976067.html iptables -P INPUT DROP-- ...