Python - Django - ORM 分组查询补充
2024-08-22 20:03:49
单表查询:
models.py:
from django.db import models class Employee(models.Model):
name = models.CharField(max_length=16)
age = models.IntegerField()
salary = models.IntegerField()
province = models.CharField(max_length=32)
dept = models.CharField(max_length=16) def __str__(self):
return self.name class Meta:
db_table = "employee"
employee 表中数据:
orm.py:
import os if __name__ == '__main__':
# 加载 Django 项目的配置信息
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
# 导入 Django,并启动 Django 项目
import django
django.setup() from app04 import models from django.db.models import Avg # 计算每个部门的平均工资
ret = models.Employee.objects.values("dept").annotate(avg=Avg("salary")).values("dept", "avg")
print(ret)
运行结果:
连表查询:
model.py:
from django.db import models class Employee2(models.Model):
name = models.CharField(max_length=16)
age = models.IntegerField()
salary = models.IntegerField()
province = models.CharField(max_length=32)
dept = models.ForeignKey(to="Dept") def __str__(self):
return self.name class Meta:
db_table = "employee2" class Dept(models.Model):
name = models.CharField(max_length=16, unique=True) def __str__(self):
return self.name class Meta:
db_table = "dept2"
dept2 表:
employee2 表:
orm.py:
import os if __name__ == '__main__':
# 加载 Django 项目的配置信息
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
# 导入 Django,并启动 Django 项目
import django
django.setup() from app04 import models from django.db.models import Avg # 连表查询计算每个部门的平均工资
ret = models.Employee2.objects.values("dept_id").annotate(avg=Avg("salary")).values("dept__name","avg") # 一个双下划线表示跨一张表查询
print(ret)
运行结果:
最新文章
- Spark源码学习1.7——Master.scala
- cookie案例-显示用户上次访问网站的时间
- 【ionic】微信表情设置教程
- struts2 + spring + mybatis 框架整合
- SQL Server常用元数据函数
- NChome如何创建单据跟主子表还有扩展开发要怎么弄?
- Javscript中的null和undefined
- AOP(转)
- iOS中谓词的使用
- 使用 Palette 让你的 UI 色彩与内容更贴合
- EJB_开发EJB容器模型的WEB服务
- weex h5开发区别-实践初级篇
- 【JS基础】类型转换——不同数据类型比较
- iOS 在 程序内调用手机上安装的地图软件进行导航
- QCon2019全球软件开发大会广州站即将来袭
- 【POI每日题解 #7】TES-Intelligence Test
- NSURLSession 相关清单
- kafka丢失和重复消费数据
- 记一次spring-session登录后失效的问题
- svn服务器快速搭建及简单配置
热门文章
- 前端ajax访问 django 报错 POST http://127.0.0.1:8001/xxx 403 (Forbidden)
- netty: 解决粘包拆包: 分隔符DelimiterBasedFrameDecoder,定长消息FixedLengthFrameDecoder
- [NgRx 8] Basic of NgRx8
- H3CNE学习6 静态路由
- CODE FESTIVAL 2016 qual C题解
- OpenStack Restful API框架介绍
- Mac laravel: command not found
- linux 查看带宽瓶颈
- vue-d2admin前端axio异步请求详情
- 2019.10.25字符串——zr