Python

Slik bruker du bulk_create () i Django?

Slik bruker du bulk_create () i Django?

Django framework kan brukes til å lage en webapplikasjon med en database ved å skrive script i modeller.py og utsikt.py filer av Django-appen. Dataene kan settes inn i databasetabellene ved å bruke Django Administration Dashboard eller ved å skrive et skript i utsikt.py fil. Django Administration Dashboard krever pålogging for at en autentisert bruker skal få tilgang til tabellene i databasen. Enkelt eller flere poster kan settes inn i databasetabellene ved å skrive et skript. bulk_create () metoden er en av måtene å sette inn flere poster i databasetabellen. Hvordan i bulk_create () metoden brukes til å sette inn flere data i en Django-databasetabell, vil bli vist i denne opplæringen.

Forutsetninger:

Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver:

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django-prosjekt
  3. Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke

Konfigurer en Django-app:

Kjør følgende kommando for å opprette en Django-app med navnet bookapp.

$ python3 administrere.py startapp bookapp

Kjør følgende kommando for å opprette brukeren for å få tilgang til Django-databasen. Hvis du allerede har opprettet en, trenger du ikke å kjøre kommandoen.

$ python3 administrere.py skaperbruker

Legg til appnavnet i INSTALLERT_APP del av innstillinger.py fil.

INSTALLED_APPS = [
..
'bookapp'
]

Opprett en mappe med navnet maler inne i bookapp mappen og angi malens plassering av appen i MALER del av innstillinger.py fil.

MALER = [

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

Lag en modell for databasetabellen:

Åpne modeller.py fil fra bookapp mappen og legg til følgende skript for å definere strukturen til bøker bord. Bok klasse er definert for å lage en tabell som heter bøker med tittel, forfatter, pris, og publisert_år Enger. I følge skriptet, tittel og forfatter felt vil lagres karakterdata, og pris og publisert_år felt vil lagre heltallsdataene. Her, den tittel felt er definert med det unike attributtet. Det betyr at verdien av tittel feltet godtar ikke dupliserte data.

modeller.py

# Importer modeller-modulen
fra django.db import modeller
# Definer bokklassen for bøkene
class Book (modeller.Modell):
tittel = modeller.CharField (max_length = 100, unique = True)
forfatter = modeller.CharField (max_length = 100)
pris = modeller.IntegerField ()
publisert_år = modeller.IntegerField ()

Kjør makemigrasjoner kommando for å opprette en ny migrering basert på endringene som er gjort av modellene.

$ python3 administrere.py makemigrations bookapp

Kjør migrere kommando for å utføre SQL-kommandoene og opprette alle tabeller i databasen som er definert i modeller.py fil.

$ python3 administrere.py migrere

Endre innholdet i admin.py fil med følgende innhold. Her registreres bokklassen til modellene ved hjelp av registrere() metode for å vise bøker tabeller i Django-administrasjons dashbordet.

admin.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer bokmodell
fra .modeller importerer Book
# Registrer bokmodell
admin.nettstedet.registrer (Bestill)

Opprett en malfil med navnet DisplayBookList.html inne i bookapp / maler / mappe med følgende manus. Dette skriptet viser alle data fra bøkene i tabellform. Annet enn det, for loop brukes i skriptet for å gjenta dataene som sendes fra utsikt.py fil.

DisplayBookList.html



<br>Veiledning for Django bulk_create ()<br>



Python Book List







% for bok i objektliste%



% endfor%
IDNavnForfatterUtgivelsesårPris
bok.id bok.tittel bok.forfatterbok.publisert_år$ bok.pris



Endre innholdet i utsikt.py filen med følgende skript. Modell- og malnavn er definert i Bulkinnsetting klasse. get_queryset () metode for klassen er definert i skriptet for å returnere alle poster i bøketabellen. På den andre siden, Bok.gjenstander.alle() metoden brukes til å returnere alle poster i bøketabellen. eksisterer () metoden brukes i skriptet for å sjekke bøker bordet er tomt eller ikke. Hvis denne metoden returnerer Falsk deretter vil fem poster settes inn i bøketabellen ved hjelp av bulk_create () metode.

utsikt.py

fra django.snarveier import gjengis
# Import ListView-modul
fra django.utsikt.generisk import ListView
# Importer bokmodell
fra .modeller importerer Book
# Definer klasse for å sette inn flere data
klasse BulkInsert (ListView):
# Definer modell
modell = Bok
# Definer mal
template_name = 'DisplayBookList.html '
# Les alle eksisterende poster over bøkene
queryset = Bestill.gjenstander.alle()
# Sjekk at bøkene er tomme eller ikke
hvis spørresett.eksisterer () == Falsk:
# Sett inn 5 poster i bøkene om gangen
Bok.gjenstander.bulk_create ([
Bok (title = 'Python Crash Course, 2. utgave', forfatter = 'Eric Matthes', pris = 15, publisert_år = 2019),
Bok (title = 'Automate the Boring Stuff with Python, 2nd Edition', author = 'Al Sweigart', pris = 30,
publisert_år = 2019),
Bok (tittel = 'Learning Python', forfatter = 'Mark Lutz', pris = 15, publisert_år = 2019),
Bok (title = 'Head First Python', forfatter = 'Paul Barry', pris = 45, publisert_år = 2016),
Bok (tittel = 'A Byte of Python', forfatter = 'Swaroop C H', pris = 15, publisert_år = 2013),
])
# Returner alle poster i bøkene
def get_queryset (selv):
# Angi standard spørresett
retur Book.gjenstander.alle()

Endre innholdet i nettadresser.py filen med følgende skript. I manuset, den 'admin /' banen er definert for å åpne Django Administration Dashboard, og 'bøker /' banen er definert for å kalle Bulkinnsetting.som_visning () metode som vil sette inn fem poster i bøketabellen og returnere postene til malfilen.

nettadresser.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer bane og inkluder modul
fra django.URL-adresse for import
fra bookapp-importvisninger
urlpatterns = [
# Definer banen for admin
sti ('admin /', admin.nettstedet.nettadresser),
sti ('bøker /', visninger.Bulkinnsetting.as_view ()),
]

Åpne Django Administration Dashboard for å sjekke om dataene er satt inn riktig eller ikke bruker bulk_create () funksjon.

De innsatte postene til bøker tabellen vises i nettleseren etter at følgende URL er utført.

http: // localhost: 8000 / bøker /

Konklusjon:

Flere poster kan settes inn i Django-databasetabellen på forskjellige måter ved hjelp av bulk_create (). En enkel måte å sette inn flere poster i databasetabellen ved hjelp av denne metoden ble vist i denne veiledningen for å hjelpe Django-brukere med å forstå logikken bak prosessen.

Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...