Python

Sådan bruges bulk_create () i Django?

Sådan bruges bulk_create () i Django?

Django framework kan bruges til at oprette en webapplikation med en database ved at skrive script i modeller.py og synspunkter.py filer i Django-appen. Dataene kan indsættes i databasetabellerne ved hjælp af Django Administration Dashboard eller ved at skrive et script i synspunkter.py fil. Django Administration Dashboard kræver et login for en godkendt bruger for at få adgang til tabellerne i databasen. Enkelt eller flere poster kan indsættes i databasetabellerne ved at skrive et script. bulk_create () metode er en af ​​måderne til at indsætte flere poster i databasetabellen. Hvordan bulk_create () metoden bruges til at indsætte flere data i en Django-database, tabel vises i denne vejledning.

Forudsætninger:

Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver:

  1. Installer Django version 3+ på Ubuntu 20+ (helst)
  2. Opret et Django-projekt
  3. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej

Konfigurer en Django-app:

Kør følgende kommando for at oprette en Django-app med navnet bogapp.

$ python3 administrere.py startapp bookapp

Kør følgende kommando for at oprette brugeren for at få adgang til Django-databasen. Hvis du allerede har oprettet en, behøver du ikke køre kommandoen.

$ python3 administrere.py skaberbruger

Tilføj appnavnet i INSTALLERET_APP en del af indstillinger.py fil.

INSTALLED_APPS = [
..
'bookapp'
]

Opret en mappe med navnet skabeloner inde i bogapp mappe, og indstil skabelonens placering af appen i MALLER en del af indstillinger.py fil.

MALLER = [

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

Opret en model til databasetabellen:

Åbn modeller.py fil fra bogapp mappen og tilføj følgende script for at definere strukturen af bøger tabeller. Bestil klasse er defineret til at oprette en tabel med navnet bøger med titel, forfatter, pris, og offentliggjort_år felter. Ifølge manuskriptet, titel og forfatter felter gemmes karakterdata og pris og offentliggjort år felter gemmer heltalsdataene. Her, den titel felt defineres med den unikke attribut. Det betyder, at værdien af titel felt accepterer ikke duplikatdata.

modeller.py

# Importmodulmodul
fra django.db import modeller
# Definer bogklassen til bogtabellen
klasse Bog (modeller.Model):
titel = modeller.CharField (max_length = 100, unik = True)
forfatter = modeller.CharField (max_length = 100)
pris = modeller.IntegerField ()
offentliggjort_år = modeller.IntegerField ()

Kør makemigrationer kommando til at oprette en ny migration baseret på ændringer foretaget af modellerne.

$ python3 administrere.py makemigrations bookapp

Kør migrere kommando til at udføre SQL-kommandoer og oprette alle tabeller i databasen, der er defineret i modeller.py fil.

$ python3 administrere.py migrere

Rediger indholdet af admin.py fil med følgende indhold. Her registreres bogklassen af ​​modellerne ved hjælp af Tilmeld() metode til at vise bøger tabeller i Django-administrationens dashboard.

admin.py

# Importér admin-modul
fra django.import importadministrator
# Importer bogmodel
fra .modeller importerer bog
# Registrer bogmodel
admin.websted.register (Book)

Opret en skabelonfil med navnet DisplayBookList.html inde i bookapp / skabeloner / mappe med følgende script. Dette script viser alle data fra bøger i tabelform. Bortset fra det, bruges loop i scriptet til at gentage de data, der er sendt fra synspunkter.py fil.

DisplayBookList.html



<br>Vejledning til Django bulk_create ()<br>



Python-bogliste







% for bog i objekt_liste%



% endfor%
IDNavnForfatterUdgivelsesårPris
Bestil.id Bestil.titel Bestil.forfatterBestil.offentliggjort_år$ bog.pris



Rediger indholdet af synspunkter.py fil med følgende script. Model- og skabelonnavne er defineret i BulkInsert klasse. get_queryset () metode til klassen er defineret i scriptet for at returnere alle poster i tabellen bøger. På den anden side, Bestil.genstande.alle() metoden bruges til at returnere alle poster i bøgetabellen. eksisterer () metode bruges i scriptet til at kontrollere bøger tabellen er tom eller ej. Hvis denne metode vender tilbage Falsk derefter indsættes fem poster i bøgtabellen ved hjælp af bulk_create () metode.

synspunkter.py

fra django.genveje import gengivelse
# Import ListView-modul
fra django.synspunkter.generisk import ListView
# Importer bogmodel
fra .modeller importerer bog
# Definer klasse til indsættelse af flere data
klasse BulkInsert (ListView):
# Definer model
model = bog
# Definer skabelon
template_name = 'DisplayBookList.html '
# Læs alle eksisterende optegnelser over bøger
queryset = Bog.genstande.alle()
# Kontroller, at bøgerne er tomme eller ikke
hvis forespørgsel.eksisterer () == Falsk:
# Indsæt 5 poster i bøgtabellen ad gangen
Bestil.genstande.bulk_create ([
Bog (titel = 'Python Crash Course, 2. udgave', forfatter = 'Eric Matthes', pris = 15, offentliggjort_år = 2019),
Bog (titel = 'Automatiser det kedelige stof med Python, 2. udgave', forfatter = 'Al Sweigart', pris = 30,
offentliggjort_år = 2019),
Bog (titel = 'Learning Python', forfatter = 'Mark Lutz', pris = 15, offentliggjort_år = 2019),
Bog (titel = 'Head First Python', forfatter = 'Paul Barry', pris = 45, offentliggjort_år = 2016),
Bog (titel = 'A Byte of Python', forfatter = 'Swaroop C H', pris = 15, offentliggjort_år = 2013),
])
# Returner alle optegnelser over bøgerne
def get_queryset (selv):
# Indstil standardforespørgselssættet
returner bog.genstande.alle()

Rediger indholdet af webadresser.py fil med følgende script. I scriptet, den 'admin /' sti er defineret for at åbne Django Administration Dashboard og stien 'bøger /' er defineret til at kalde BulkInsert.som_visning () metode, der vil indsætte fem poster i bogtabellen og returnere poster til skabelonfilen.

webadresser.py

# Importér admin-modul
fra django.import importadministrator
# Importer sti og inkluder modul
fra django.webadresser til import af sti
fra bookapp-importvisninger
urlmønstre = [
# Definer stien til admin
sti ('admin /', admin.websted.webadresser),
sti ('bøger /', synspunkter.BulkInsert.som_visning ()),
]

Åbn Django Administration Dashboard for at kontrollere, om dataene indsættes korrekt eller ikke bruger bulk_create () fungere.

De indsatte optegnelser over bøger tabellen vises i browseren efter udførelse af følgende URL.

http: // localhost: 8000 / bøger /

Konklusion:

Flere poster kan indsættes i Django-databasetabellen på forskellige måder ved hjælp af bulk_create (). En enkel måde at indsætte flere poster i databasetabellen ved hjælp af denne metode blev vist i denne vejledning for at hjælpe Django-brugere med at forstå logikken bag processen.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...