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作为后端数据库时. ...
随机推荐
- CorelDRAW中如何复制对象属性详解
复制对象属性是一种比较特殊.重要的复制方法,它可以方便而快捷地将指定对象中的轮廓笔.轮廓色.填充和文本属性通过复制的方法应用到所选对象中.本教程将详解CorelDRAW中如何复制对象属性. Corel ...
- linux环境中,如何查看某个软件包,都依赖哪些软件包?被哪些软件包依赖?
需求描述: 今天查看主机上的一个软件ghostscript,准备删除,就先看下这个软件都依赖哪些软件, 然后呢被哪些软件依赖 操作过程: 1.查看这个软件依赖哪些软件(rpm方式查询) [root@t ...
- MTK 隐藏上方的状态栏
步骤一: 源码/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.ja ...
- 标准JSON格式定义与解析注意点
标准JSON格式定义与解析注意点 在JS.IOS.Android中都内置了JSON的序列化.反序列化SDK.JEE中也可以使用第三方的JSON解析库,如GSON.虽然在JSON格式被定义出来的时候并没 ...
- vuejs解析url地址
函数: // url解析函数 // ?id=111&name=567 => {id:111,name:567} export function urlParse(){ let obj = ...
- android 网络检测
这个过程我觉得有必要记录一下事情的起因是这样的, 写的程序在虚拟机下面无法连接到服务器,首先想到的是,虚拟机能不能访问外网,打开某搜索网站,正常,想用ping命令来ping服务器,于是就有了下面的过程 ...
- redis 缓存类型为map
// 获取分类列表,以及同类品牌 public Map<String, List> getCatalogInfo(Product product) { String key = Cache ...
- C语言的f(open)函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, ...
- PHP array_merge 隐藏坑。。
foreach ($list as $k=> $teamGoods){ if($teamGoods['status'] > 4){ $_soldGoods[] = $teamGoods; ...
- 微信小程序实例源码大全2
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...