【Django】データの一括作成を実行する【bulk_create】

Djangoのデータを一括作成したい時はないでしょうか?

いちいちfor文で回してcreate()でもデータを作成できますが、パフォーマンス(実行速度)も悪く、何度も何度もcreateするのは気持ちが悪い状況です。

今回はそんなデータの一括作成ができるメソッドのbulk_create()を紹介します。

環境

環境

・Python3.8

・Django3.2

for文でcreateは悪手である

実際に例に出して紹介します。

例えばとあるブログのモデルがあって、一度にダミー記事を一括作成したいと考えました。

models.py

これをviews側の処理で、一度に1000件を一括作成します。

その時for文とcreate()を使用してかくとこんな感じのコードになると思います。

1000件なのでrange = 1000と変数を置きます。

そして2行目からfor文とcreate()でデータを生成していきます。

非常にシンプルですが、パフォーマンス(実行速度)も悪く、何度もデータベースにcreate()するのは気持ちが悪いです。

悪手な理由

・パフォーマンスが悪い

・何度も何度もsave()するのが気持ち悪い

ではどうすれば良いのかを次で紹介します。

データの一括作成

データを一括作成するには、bulk_create()メソッドを使用します。

今回も1000件のダミー記事を作成することにします。

bulk_createの使い方

1行目でblog_itemsという空のリストを用意します。

for文で回しながら、blog_itemsにappend(追加)をしていきます。

最後にbulk_createを使用して一括作成します。

こっちの方がパフォーマンスもよく気持ち悪くないですね。

djangoチュートリアル公式でも推薦されています。

Djangoチュートリアル公式

以上。

最後に

いかがでしたでしょうか。

以上が、「【Django】データの一括作成を実行する【bulk_create】」の紹介記事になります。

プログラミング学習を効率良く進めるには…

私ヒロヤンがプログラミングを始めた頃は以下のような感じでした。

何から手をつけていいのか、わからない。

プログラミングを始めてみたけど、エラーが解決できない。

そしてネットで調べていくうちに膨大な時間が過ぎていきました。

私ヒロヤンの実体験より、プログラミングを効率的に学ぶために大切なことは以下のことだと考えています。

1. いつまでもダラダラとやらないで、目標を決定して短期集中する

2. マンツーマンで、わからない箇所は直ぐに質問をして即レスをもらう

.proでは私ヒロヤンが学習してきたプログラミング経験0からのpython/django、その他webサイト・サービス開発のコースが用意されています。

カウンセリング自体は無料なので話を聞いてみるだけでもいかがでしょうか?

また以下のリンク先ではdjangoを教えてくれるスクールをまとめ紹介しています。

コメントを残す

メールアドレスが公開されることはありません。