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()
  • 相关阅读:
    记ByteCTF中的Node题
    Hooks中的useState
    IntersectionObserver对象
    Service Worker的应用
    使用 SpringBoot 构建一个RESTful API
    创业和技术有什么相通的“底层逻辑”?
    SpringBoot Profiles 多环境配置及切换
    SpringBoot Logback 日志配置
    应用分层和领域模型规约
    SpringBoot 整合 MyBatis,实现 CRUD 示例
  • 原文地址:https://www.cnblogs.com/zhen1996/p/9664652.html
Copyright © 2011-2022 走看看