9.17 Django ORM分组
2018-9-17 19:53:22
预习:http://www.cnblogs.com/liwenzhou/p/8343243.html
新买个蓝牙挂耳耳机,感觉不错!
放上代码 笔记什么的明天继续 视频没看完!
最近想沉下心看书!
越努力,越幸运.永远不要高估自己!
# /usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/9/17 15:23
# @Author : TrueNewBee
"""
这里只涉及用法,不涉及具体数据内容
因为数据库里面内容我没有添加
2018-9-17 20:23:46
"""
import os
from app01 import models if __name__ == '__main__':
# 加载Django项目的配置信息
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite67.settings")
import django
django.setup() ret = models.Employee.objects.all().values("id")
print(ret) from django.db.models import Avg
ret = models.Employee.objects.values("dept").annotate(avg=Avg("salary")).value("dept", "avg")
print(ret) ret = models.Employee.objects.values("dept_id").annotate(avg=Avg("salary")).values("dept_name", "avg")
print(ret) # 查询所有的员工和部门名称
ret = models.Employee.objects.values("name", "dept_name")
print(ret) ret = models.Employee.objects.select_related().values("name", "dept_name")
print(ret)
ret = models.Employee.objects.select_related().values("name", "books_title")
print(ret)
print("="*120)
ret = models.Author.objects.preftch_related().values("name", "books_title")
print(ret) # 批量创建
# 有100个书籍对象
obj = [models.Book(title="沙河{}".format(i)) for i in range(100)] # 在数据库中批量创建 10次一提交
models.Book.objects.bulk_create(obj, 10)
# /usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/9/14 15:28
# @Author : TrueNewBee
import os
from app001 import models
"""
2018-9-14 19:29:12
这里只涉及用法,不涉及具体数据内容
因为数据库里面内容我没有添加 """ if __name__ == '__main__':
# 加载Django项目的配置信息
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite67.settings")
import django
django.setup() # 一对一的查询
# 和外键查询类似
author_obj = models.Author.objects.get(id=1)
obj = author_obj.detail
print(obj.hobby, obj.addr) # 在app01 里面查询 id是1的作者关联的书
from app01 import models
ret = models.Author.objects.get(id=1).books.all()
print(ret)
print("app01".center(80, "-")) # 在app02 里面查询 id是1的作者关联的书
# from app02 import models
ret = models.Author2Book.objects.filter(author_id=1).values_list("book_id")
# id是1的作者关联的书的id
print(ret)
ret = [i[0] for i in ret]
# 查书这张表
ret = models.Book.objects.filter(id_in=ret)
print(ret) # 在app03 里面查询id 是1的作者关联的书
# from app03 import models
ret = models.Author.objects.get(id=1).book.all()
print(ret)
# 从作者关联的书里面移除id是1的书
# 没有django ORM封装的那些快捷方式,我们要自己亲自修改第三张表
models.Author2Book.objects.get(author_id=1, book_id=1).delete()
9.17 Django ORM分组的更多相关文章
- Python - Django - ORM 分组查询补充
单表查询: models.py: from django.db import models class Employee(models.Model): name = models.CharField( ...
- django orm高级查询 F表达式和Q表达式以及分组annotate
1.关联关系映射及查询1.1django默认开启延迟加载所有多对1和1对1如果不使用select_related(),需要会延迟加载获取到相关对象,因为延迟可能会造成n+1次查询的问题,所以便有了se ...
- Django orm进阶查询(聚合、分组、F查询、Q查询)、常见字段、查询优化及事务操作
Django orm进阶查询(聚合.分组.F查询.Q查询).常见字段.查询优化及事务操作 聚合查询 记住用到关键字aggregate然后还有几个常用的聚合函数就好了 from django.db.mo ...
- python 之 Django框架(orm单表查询、orm多表查询、聚合查询、分组查询、F查询、 Q查询、事务、Django ORM执行原生SQL)
12.329 orm单表查询 import os if __name__ == '__main__': # 指定当前py脚本需要加载的Django项目配置信息 os.environ.setdefaul ...
- 9.14.16 Django ORM进阶用法
2018-9-14 14:26:45 ORM 练习题 : http://www.cnblogs.com/liwenzhou/articles/8337352.html 2018-9-14 21:1 ...
- django -orm操作总结
前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MyS ...
- Django ORM 查询管理器
Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...
- Django ORM那些相关操作
一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/ 官网文档 常用的操作 <1> all() ...
- django orm 及常用参数
一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...
随机推荐
- C++ 使用vector时遇到的一个问题
我在测试程序中定义一个存储三维点的结构体,并定义该结构体的vector,当我在向vector插入元素时,编译一直提示错误: 代码片段如下: C++ Code 1234567891011121314 ...
- dedecms 自增数使用方法
[field:global name=autoindex runphp="yes"]@me=@me+1;[/field:global] {dede:global name=item ...
- mysql执行SQL语句时报错:[Err] 3 - Error writing file '/tmp/MYP0G1B8' (Errcode: 28 - No space left on device)
问题描述: 今天一同事在mysql中执行SQL语句的时候,报了/tmp空间不足的问题,报错如下: [SQL] SELECT f.prov as 字段1, MAX( CASE f.flag_name W ...
- 安装程序配置服务器失败。参考服务器错误日志和C:\windows\sqlstp.log 了解更多信息
重装sql经常遇到2个问题 1,以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机. 删除C:\Program Files\Microsoft SQL Serve ...
- [原]unity调Android(三)
private UnityPlayer mUnityPlayer; @Override protected void onCreate(Bundle savedInstanceState) ...
- MySQL数据库辅助类
/** *创建人:CalvinR *说明:数据库辅助类 **/ namespace Study.Utilities.MySql_Connect { /// <summary> /// My ...
- 对象克隆技术Object.clone()
Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象. 所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象. ...
- Centos6.3 下使用 Tomcat-6.0.43 非root用户 jsvc模式部署 生产环境 端口80 vsftp
一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...
- grid响应式布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- .Net使用DES加密,.Net和java分别解密,并正则匹配替换加密密码为明文
在VS中用WindowsApplication做一个exe程序,用来给数据库密码加密,加密代码如下 private void generateBtn_Click(object sender, Even ...