Jak używać Bulk_Create w Django?

Jak używać Bulk_Create w Django?

Django Framework można użyć do tworzenia aplikacji internetowej z bazą danych, pisząc skrypt w modele.py I wyświetlenia.py Pliki aplikacji Django. Dane można wstawić do tabel bazy danych za pomocą pulpitu nawigacyjnego Django Administration lub pisząc skrypt w wyświetlenia.py plik. Djangi administracyjne Django wymaga logowania uwierzytelnionego użytkownika, aby uzyskać dostęp do tabel bazy danych. Pojedyncze lub wiele rekordów można wstawić do tabel bazy danych, pisząc skrypt. bulk_create () Metoda jest jednym ze sposobów wstawienia wielu rekordów w tabeli bazy danych. Jak bulk_create () Metoda jest używana do wstawienia wielu danych w tabeli bazy danych Django, zostanie pokazana w tym samouczku.

Wymagania wstępne:

Przed ćwiczeniem scenariusza tego samouczka musisz wykonać następujące zadania:

  1. Zainstaluj wersję Django 3+ na Ubuntu 20+ (najlepiej)
  2. Utwórz projekt Django
  3. Uruchom serwer Django, aby sprawdzić, czy serwer działa poprawnie lub nie

Skonfiguruj aplikację Django:

Uruchom następujące polecenie, aby utworzyć aplikację Django o nazwie Bookapp.

$ Python3 Zarządzaj.PY Startapp Bookapp

Uruchom następujące polecenie, aby utworzyć użytkownika, aby uzyskać dostęp do bazy danych Django. Jeśli już go utworzyłeś, nie musisz uruchamiać polecenia.

$ Python3 Zarządzaj.PY CreateSuperuser

Dodaj nazwę aplikacji w Zainstalowany_app część Ustawienia.py plik.

Instalowane_apps = [

„Bookapp”
]

Utwórz folder o nazwie szablony w środku Bookapp folder i ustaw lokalizację szablonu aplikacji w Szablony część Ustawienia.py plik.

Szablony = [

… .
„Dirs”: ['/home/fahmida/django_pro/bookapp/szablony']],
… .
,
]

Utwórz model tabeli bazy danych:

Otworzyć modele.py plik z Bookapp folder i dodaj następujący skrypt, aby zdefiniować strukturę książki tabele. Książka klasa jest zdefiniowana, aby utworzyć tabelę o nazwie książki z Tytuł, autor, cena, I Opublikowany_year Pola. Według skryptu, tytuł I autor Pola będą przechowywać Dane postaci oraz ceny i opublikowane_year Pola przechowują dane liczb całkowitych. Tutaj tytuł pole jest zdefiniowane za pomocą unikalnego atrybutu. To oznacza, że ​​wartość tytuł pole nie przyjmie żadnych zduplikowanych danych.

modele.py

# Importuj moduł modeli
z Django.Modele importu DB
# Zdefiniuj klasę książek dla stołu książek
Książka klasowa (modele.Model):
title = modele.Charfield (max_length = 100, unikalne = true)
autor = modele.Charfield (max_length = 100)
cena = modele.Integerfield ()
Opublikowane modele_year =.Integerfield ()

Uruchom Makemigrations polecenie tworzenia nowej migracji na podstawie zmian wprowadzonych przez modele.

$ Python3 Zarządzaj.Py Makemigrations Bookapp

Uruchom migrować polecenie do wykonania poleceń SQL i utworzenia wszystkich tabel w bazie danych zdefiniowanych w modele.py plik.

$ Python3 Zarządzaj.Py migruj

Zmodyfikuj zawartość Admin.py Plik z następującą zawartością. Tutaj klasa książek modeli jest zarejestrowana za pomocą rejestr() metoda wyświetlania książki Tabele w deski rozdzielczej administracyjnej Django.

Admin.py

# Importuj moduł administratora
z Django.Administrator importu
# Model importu książki
z .Książka importu modeli
# Model zarejestruj książkę
Admin.strona.Zarejestruj się (książka)

Utwórz plik szablonu o nazwie DisplayBookList.html w środku BookApp/ szablony/ folder z następującym skryptem. Ten skrypt wyświetli wszystkie dane z tabeli książek w formie tabelarycznej. Poza tym, dla pętli jest używane w skrypcie do iteracji danych przekazywanych z wyświetlenia.py plik.

DisplayBookList.html



<br>Samouczek Django Bulk_Create ()<br>



Lista książek Python







% dla książki w obiekcie_list %



% endfor %
IDNazwaAutorRok publikacjiCena
książka.ID książka.tytuł książka.autorksiążka.opublikowane_year$ book.cena



Zmodyfikuj zawartość wyświetlenia.py Plik z następującym skryptem. Model i nazwy szablonów są zdefiniowane w Bulkinsert klasa. get_querySet () Metoda klasy jest zdefiniowana w skrypcie, aby zwrócić wszystkie zapisy tabeli książek. Z drugiej strony, Książka.obiekty.Wszystko() Metoda służy do zwrócenia wszystkich zapisów tabeli książek. istnieje () Metoda jest stosowana w skrypcie do sprawdzenia książki Stół jest pusty czy nie. Jeśli ta metoda zwróci FAŁSZ wówczas pięć rekordów zostanie włożonych do tabeli książek za pomocą bulk_create () metoda.

wyświetlenia.py

z Django.KRÓTKI IMPORTOWANE RENDER
# Importuj moduł ListView
z Django.wyświetlenia.Ogólny lista importu
# Model importu książki
z .Książka importu modeli
# Zdefiniuj klasę w celu wstawienia wielu danych
klasa Bulkinsert (ListView):
# Zdefiniuj model
model = książka
# Zdefiniuj szablon
THAMPLAPE_NAME =.html '
# Przeczytaj wszystkie istniejące zapisy tabeli książek
QuerySet = książka.obiekty.Wszystko()
# Sprawdź, czy tabela książek jest pusta, czy nie
Jeśli QuerySet.istnieje () == Fałsz:
# Wstaw 5 rekordów w tabeli książek
Książka.obiekty.bulk_create
Książka (tytuł = „Python Crash Course, 2. edycja”, autor = „Eric Matthes”, cena = 15, opublikowana_year = 2019),
Książka (tytuł = „Automatyzuj nudne rzeczy z Pythonem, 2. edycja”, autor = „Al Sweigart”, cena = 30,
opublikowane_year = 2019),
Książka (tytuł = „Nauka Python”, autor = „Mark Lutz”, cena = 15, opublikowana_year = 2019),
Książka (tytuł = „Head First Python”, autor = „Paul Barry”, cena = 45, opublikowana_year = 2016),
Książka (tytuł = „Bajt Python”, autor = „Swaroop C H”, cena = 15, opublikowana_year = 2013),
])
# Zwróć wszystkie rekordy tabeli książek
def get_queryset (self):
# Ustaw domyślny zestaw zapytania
Return Book.obiekty.Wszystko()

Zmodyfikuj zawartość URL.py Plik z następującym skryptem. W skrypcie, „admin/” Ścieżka jest zdefiniowana, aby otworzyć deskę rozdzielczą administracyjną Django, a ścieżka „książek/” jest zdefiniowana, aby wywołać Bulkinsert.as_view () Metoda, która włoży pięć rekordów do tabeli książek i zwróci rekordy do pliku szablonu.

URL.py

# Importuj moduł administratora
z Django.Administrator importu
# Importuj ścieżkę i uwzględnij moduł
z Django.URL ścieżki importu
z Bookapp Import Views
urlpatterns = [
# Zdefiniuj ścieżkę administratora
ścieżka („admin/”, administrator.strona.URL),
ścieżka („książki/”, widoki.Bulkinsert.as_view ()),
]

Otwórz pulpit nawigacyjny Django Administration, aby sprawdzić, czy dane są poprawnie wstawiane, czy nie za pomocą bulk_create () funkcjonować.

Wstawione zapisy książki Tabela zostanie wyświetlona w przeglądarce po wykonaniu następującego adresu URL.

http: // localhost: 8000/książki/

Wniosek:

Wiele rekordów można wstawić do tabeli bazy danych Django na różne sposoby za pomocą bulk_create (). W tym samouczku pokazano prosty sposób wstawienia wielu rekordów w tabeli bazy danych przy użyciu tej metody, aby pomóc użytkownikom Django.