パイソン - ジャンゴ - ORMクエリセットメソッドサプリメント

models.py:

django.db輸入モデルから


クラスEmployee2(models.Model):
    名前= models.CharField(max_lengthを= 16)
    年齢= models.IntegerField()
    給与= models.IntegerField()
    州= models.CharField(max_lengthを= 32)
    DEPT = models.ForeignKey(= "部門"への)

    デフ__str __(自己):
        リターンself.nameの

    クラスのMeta:
        DB_Tableの= "employee2" 


クラス部門(models.Model):
    名前= models.CharField(max_lengthを= 16、ユニーク=真)

    デフ__str __(自己):
        リターンself.nameの

    クラスのMeta:
        DB_Tableの= "DEPT2"

employee2表:

DEPT2表:

 

select_related:

うselect_related テーブル間テーブル取り付けること結合操作、一回のデータ取得が関連します

select_related主要な針-1および多の関係を最適化します

select_related使用のSQL文は、パフォーマンスを向上させるために、SQLクエリの数を減らすことによって最適化されるように参加最適化します

orm.py:

OSのインポート

IF __name__ == '__main__': 負荷Djangoのプロジェクトの構成情報
    os.environ.setdefault( "DJANGO_SETTINGS_MODULE"、 "mysite2.settings") インポートジャンゴ、Djangoプロジェクトと開始
    インポートDjangoの
    django.setupを()

    app04からモデルのインポート

    RET = models.Employee2.objects.select_related()。値( "名前"、 "dept__name")
    印刷(RET)

 結果:

 また、使用することができます。

RET = models.Employee2.objects.values( "名前"、 "dept__name")
プリント(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 表:

 

おすすめ

転載: www.cnblogs.com/sch01ar/p/11324724.html