データの挿入Djangoのバルク

プロジェクトの要件:アクセスするには、ブラウザ特定のDjangoのバックエンドURL(例:127.0.0.1:8080 / get_book /)、リアルタイムデータのデータベースと出て生成されたクエリデータに向けて千を生成し、フロントページに実証します

views.py

django.shortcuts インポート、レンダリングのHttpResponse、リダイレクト
 から app01 輸入モデル

DEFのget_book(要求):
  #ループ1000は、データに挿入される
  ための I (1000年レンジ):
    models.Book.objects.create(名前 = ' %sの著書の'I)
  book_queryset = models.Book.objects.all()     挿入されたデータは、その後、チェックアウト
  のリターンを(、リクエストをレンダリングget_book.htmlを地元()については、)  htmlページへのデータ転送をチェックアウトします

urls.py

django.conf.urlsのインポートURL
 から app01 インポートビュー

urlpatterns = [
  URL(R ' ^ get_book / ' 、views.get_book)
]

models.py

django.db 輸入モデル

クラスget_book(models.Model):
  タイトル = models.CharField(max_lengthを= 64)
<!DOCTYPE HTML>
<HTML LANG = " EN " >
<ヘッド>
    <メタ文字セット= " UTF-8 " >
    <タイトル>タイトル</ TITLE>
    <SCRIPT SRC = " https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js " > </ SCRIPT> 
    {%負荷静的%}
     <リンクREL = " スタイルシート" HREF = " {%静的な'ブートストラップ-3.3.7-distの/ CSS / bootstrap.min.css' %} " >
    <リンクREL = " スタイルシート" HREF = " {%静的'DIST / sweetalert.css' %} " >
    <スクリプトSRC = " {%の静的'ブートストラップ3.3.7-DIST / JS / bootstrap.min.js' %} " > </ SCRIPT>
    <スクリプトSRC = " {%静的'DIST / sweetalert.min.js' %} " > </ SCRIPT>
</ head>の
<BODY> 
{ため book_obj  book_querysetの%}
       <P> {{book_obj.title}} </ P> 
{%ENDFOR%}
 </ BODY>
</ HTML>
get_book.html

バックエンドのデータベースは、長い時間がかかるため、ブラウザのアクセスを完了し、上記のコードを書いた後ジャンゴバックエンドを起動し、ブラウザが一定運転中である重要なカトン待ち時間を持つことになりますでしょう、おそらくいくつかの時間を待つ必要がありますあなただけ挿入し、通常の1000年のデータを見ることができる前に、それはデータベースのこの操作効率が低すぎることは明らかである、やるデータベースのバッチ操作に設計されて誰も方法はありませんか?答えはイエスです!

bulk_create方法

views.pyマイナーの変更で元のビュー機能

デフ(リクエスト)get_book:
    L = []
     のための I における範囲(10000 )。
        l.append(models.Book(タイトル = ' %sの著書の'%のI))
    models.Book.objects.bulk_create(L)  データ挿入バルク
        返すレンダリング(リクエスト、' get_book.html '、地元の人々についての())

コードの完了は、変更せずに別の場所に変更し再訪問にプロジェクトDjangoのブラウザを再起動した後、すぐにデータボリュームの速さを発見するでしょうが表示されます上記のことを速くページよりも10倍に増加しました。

bulk_createジャンゴORM方法が具体的に、我々は、データベースを操作する方法のバッチを容易にするために提供され、効率が非常に高いです!

おすすめ

転載: www.cnblogs.com/baohanblog/p/12181659.html