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 表: