zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    越来越火的5G公网专用,到底是啥意思?
    看懂IPv6+,这篇就够了
    今年诺贝尔奖得主居然把这事研究清楚了:学历和收入到底有多大关系?
    华为发布《智能世界2030》报告,多维探索未来十年趋势
    每天一个离职小技巧
    Deepsort + Yolo 实现行人检测和轨迹追踪
    “5G+AI”到底有啥用?这篇漫画告诉你答案…
    全国多地拉闸限电 背后到底怎么了?
    【Ajax请求 】- 1.1前端和后台数据交互的说明
    【Web API系列教程】3.3 — 实战:处理数据(建立数据库)
  • 原文地址:https://www.cnblogs.com/zhen1996/p/9664652.html
Copyright © 2011-2022 走看看