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()

猜你喜欢

转载自www.cnblogs.com/zhen1996/p/9664652.html