zoukankan      html  css  js  c++  java
  • Python

    models.py:

    from django.db import models
    
    
    class Employee2(models.Model):
        name = models.CharField(max_length=16)
        age = models.IntegerField()
        salary = models.IntegerField()
        province = models.CharField(max_length=32)
        dept = models.ForeignKey(to="Dept")
    
        def __str__(self):
            return self.name
    
        class Meta:
            db_table = "employee2"
    
    
    class Dept(models.Model):
        name = models.CharField(max_length=16, unique=True)
    
        def __str__(self):
            return self.name
    
        class Meta:
            db_table = "dept2"
    

    employee2 表:

    dept2 表:

    select_related:

    select_related 将表之间进行 join 连表操作,一次性获取关联的数据

    select_related 主要针一对一和多对一关系进行优化

    select_related 使用 SQL 的 join 语句进行优化,通过减少 SQL 查询的次数来进行优化、提高性能

    orm.py:

    import os
    
    if __name__ == '__main__':
        # 加载 Django 项目的配置信息
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
        # 导入 Django,并启动 Django 项目
        import django
        django.setup()
    
        from app04 import models
    
        ret = models.Employee2.objects.select_related().values("name", "dept__name")
        print(ret)
    

     运行结果:

     也可以用:

    ret = models.Employee2.objects.values("name", "dept__name")
    print(ret)
    

    进行查询

    bulk_create:

    bulk_create(objs, batch_size=None)
    批量插入 objs,batch_size 为一次插入的个数

    orm.py:

    import os
    
    if __name__ == '__main__':
        # 加载 Django 项目的配置信息
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings")
        # 导入 Django,并启动 Django 项目
        import django
        django.setup()
    
        from app04 import models
    
        objs = [
            models.Dept(name="A 部门"),
            models.Dept(name="B 部门"),
            models.Dept(name="C 部门"),
            models.Dept(name="D 部门"),
            models.Dept(name="E 部门"),
            models.Dept(name="F 部门"),
            models.Dept(name="G 部门"),
            models.Dept(name="H 部门"),
            models.Dept(name="I 部门"),
            models.Dept(name="J 部门"),
        ]
        models.Dept.objects.bulk_create(objs, 2)
    

    运行结果,dept2 表:

  • 相关阅读:
    PHP文件下载
    win7的IE11降到IE8
    京东电话面试——PHP开发
    PHP异常处理
    php错误处理
    php练习7——类的运用(四则运算or面积计算[javascript小技巧——根据需求显示不同界面])
    php练习6——面向对象编程(打印乘法表)
    SICP阅读笔记(一)
    随笔(2015-18-19)
    MIT scheme入门使用
  • 原文地址:https://www.cnblogs.com/sch01ar/p/11324724.html
Copyright © 2011-2022 走看看