Pytonorm

Hur man använder bulk_create () i Django?

Hur man använder bulk_create () i Django?

Django-ramverk kan användas för att skapa en webbapplikation med en databas genom att skriva in skript modeller.py och utsikt.py filer i Django-appen. Data kan infogas i databastabellerna med hjälp av Django Administration Dashboard eller genom att skriva ett skript i utsikt.py fil. Django Administration Dashboard kräver en inloggning för en autentiserad användare för att komma åt tabellerna i databasen. Enstaka eller flera poster kan infogas i databastabellerna genom att skriva ett skript. bulk_create () metoden är ett av sätten att infoga flera poster i databastabellen. Hur bulk_create () metoden används för att infoga flera data i en Django-databastabell visas i denna handledning.

Förutsättningar:

Innan du övar på skriptet i den här självstudien måste du slutföra följande uppgifter:

  1. Installera Django version 3+ på Ubuntu 20+ (helst)
  2. Skapa ett Django-projekt
  3. Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte

Ställ in en Django-app:

Kör följande kommando för att skapa en Django-app med namnet bookapp.

$ python3 hantera.py startapp bookapp

Kör följande kommando för att skapa användaren för att komma åt Django-databasen. Om du redan har skapat en behöver du inte köra kommandot.

$ python3 hantera.py skaparanvändare

Lägg till appnamnet i INSTALLERAD_APP del av inställningar.py fil.

INSTALLED_APPS = [
..
'bookapp'
]

Skapa en mapp med namnet mallar inuti bookapp mappen och ställ in mallens plats för appen i MALLAR del av inställningar.py fil.

MALLAR = [

.. .
'DIRS': ['/ home / fahmida / django_pro / bookapp / mallar'],
.. .
,
]

Skapa en modell för databastabellen:

Öppna modeller.py fil från bookapp mappen och lägg till följande skript för att definiera strukturen för böcker tabeller. bok klass definieras för att skapa en tabell med böcker med titel, författare, pris, och publicerad_år fält. Enligt manuset, titel och författare fält kommer att lagras karaktärsdata och pris och publicerat_år fält kommer att lagra heltalsdata. Här, den titel fält definieras med det unika attributet. Det betyder att värdet på titel fältet accepterar inte dubbletter.

modeller.py

# Importera modeller-modulen
från django.db-importmodeller
# Definiera bokklassen för boktabellen
klassbok (modeller.Modell):
titel = modeller.CharField (max_length = 100, unik = True)
författare = modeller.CharField (max_length = 100)
pris = modeller.IntegerField ()
publicerad_år = modeller.IntegerField ()

Springa det makemigrationer kommando för att skapa en ny migration baserat på de ändringar som gjorts av modellerna.

$ python3 hantera.py makemigrations bookapp

Springa det flytta kommando för att utföra SQL-kommandon och skapa alla tabeller i databasen som definieras i modeller.py fil.

$ python3 hantera.py migrera

Ändra innehållet i administration.py fil med följande innehåll. Här registreras bokklassen för modellerna med hjälp av Registrera() metod för att visa böcker i Django-administrationspanelen.

administration.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera bokmodell
från .modeller importerar bok
# Registrera bokmodell
administration.webbplats.registrera (Boka)

Skapa en mallfil med namnet DisplayBookList.html inuti bookapp / mallar / mapp med följande skript. Det här skriptet visar alla data i böktabellen i tabellform. Annat än så används för loop i skriptet för att upprepa data som skickats från utsikt.py fil.

DisplayBookList.html



<br>Django bulk_create () Handledning<br>



Python-boklista







% för bok i objekt_lista%



% endfor%
IDnamnFörfattarePubliceringsårPris
bok.id bok.titel bok.författarebok.publicerad_år$ bok.pris



Ändra innehållet i utsikt.py fil med följande skript. Modell- och mallnamnen definieras i Bulkinsättning klass. get_queryset () metod för klassen definieras i skriptet för att returnera alla poster i böktabellen. Å andra sidan, bok.föremål.Allt() metoden används för att returnera alla poster i boktabellen. existerar() metoden används i skriptet för att kontrollera böcker bordet är tomt eller inte. Om den här metoden återkommer Falsk sedan kommer fem poster att införas i böktabellen med hjälp av bulk_create () metod.

utsikt.py

från django.genvägar importeras
# Import ListView-modul
från django.utsikt.generisk import ListView
# Importera bokmodell
från .modeller importerar bok
# Definiera klass för att infoga flera data
klass BulkInsert (ListView):
# Definiera modell
modell = bok
# Definiera mall
template_name = 'DisplayBookList.html '
# Läs alla befintliga register över böcker
queryset = Boka.föremål.Allt()
# Kontrollera att böktabellen är tom eller inte
om frågeset.existerar () == Falskt:
# Infoga 5 poster i böktabellen åt gången
bok.föremål.bulk_create ([
Bok (titel = 'Python Crash Course, 2: a upplagan', författare = 'Eric Matthes', pris = 15, publicerad_år = 2019),
Bok (title = 'Automate the Boring Stuff with Python, 2nd Edition', author = 'Al Sweigart', pris = 30,
publicerad_år = 2019),
Bok (titel = 'Learning Python', författare = 'Mark Lutz', pris = 15, publicerad_år = 2019),
Bok (titel = 'Head First Python', författare = 'Paul Barry', pris = 45, publicerad_år = 2016),
Bok (title = 'A Byte of Python', author = 'Swaroop C H', price = 15, published_year = 2013),
])
# Returnera alla poster i böktabellen
def get_queryset (själv):
# Ställ in standardfrågesatsen
returnera boken.föremål.Allt()

Ändra innehållet i webbadresser.py fil med följande skript. I manuset, "admin /" sökväg definieras för att öppna Django Administration Dashboard och sökvägen "böcker /" definieras för att anropa Bulkinsättning.as_view () metod som infogar fem poster i böktabellen och returnerar posterna till mallfilen.

webbadresser.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera sökväg och inkludera modul
från django.webbadress för webbadresser
från bokappens importvyer
urlmönster = [
# Definiera sökvägen för admin
sökväg ('admin /', admin.webbplats.webbadresser),
sökväg ('böcker /', vyer.Bulkinsättning.as_view ()),
]

Öppna Django Administration Dashboard för att kontrollera om data är infogade korrekt eller inte använder bulk_create () fungera.

De infogade uppgifterna om böcker tabellen visas i webbläsaren efter att följande URL har körts.

http: // localhost: 8000 / böcker /

Slutsats:

Flera poster kan infogas i Django-databastabellen på olika sätt med hjälp av bulk_create (). Ett enkelt sätt att infoga flera poster i databastabellen med den här metoden visades i denna handledning för att hjälpa Django-användare att förstå logiken bakom processen.

Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...