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:
- Installer Django versjon 3+ på Ubuntu 20+ (helst)
- Lag et Django-prosjekt
- 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 bookappKjø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 skaperbrukerLegg 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-modulenfra 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 bookappKjør migrere kommando for å utføre SQL-kommandoene og opprette alle tabeller i databasen som er definert i modeller.py fil.
$ python3 administrere.py migrereEndre 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 administrasjonsmodulfra 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
Veiledning for Django bulk_create ()
Python Book List
ID | Navn | Forfatter | Utgivelsesår | Pris |
---|---|---|---|---|
bok.id | bok.tittel | bok.forfatter | bok.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 administrasjonsmodulfra 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.