Python

Kako uporabiti bulk_create () v Django?

Kako uporabiti bulk_create () v Django?

Z ogrodjem Django lahko s pisanjem skripta ustvarite spletno aplikacijo z bazo podatkov modelov.py in pogledi.py datoteke aplikacije Django. Podatke lahko vstavite v tabele zbirke podatkov z uporabo nadzorne plošče za upravljanje Django ali s pisanjem skripta v pogledi.py mapa. Nadzorna plošča za upravljanje Django zahteva prijavo preverjenega uporabnika za dostop do tabel baze podatkov. Posamezne ali več zapisov lahko vstavite v tabele zbirke podatkov s pisanjem skripta. bulk_create () metoda je eden od načinov za vstavljanje več zapisov v tabelo baze podatkov. Kako bulk_create () metoda, ki se uporablja za vstavljanje več podatkov v tabelo baze podatkov Django, bo prikazana v tej vadnici.

Pogoji:

Pred vadbo skripta te vadnice morate opraviti naslednje naloge:

  1. Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
  2. Ustvarite projekt Django
  3. Zaženite strežnik Django, da preverite, ali strežnik deluje pravilno ali ne

Nastavite aplikacijo Django:

Zaženite naslednji ukaz, da ustvarite aplikacijo Django z imenom bookapp.

$ python3 upravljanje.py startapp bookapp

Zaženite naslednji ukaz, da ustvarite uporabnika za dostop do baze podatkov Django. Če ste ga že ustvarili, vam ni treba zagnati ukaza.

$ python3 upravljanje.py ustvarja uporabnika

Dodajte ime aplikacije v INSTALLED_APP del nastavitve.py mapa.

INSTALLED_APPS = [
..
'bookapp'
]

Ustvarite mapo z imenom predloge znotraj bookapp mapo in nastavite lokacijo predloge aplikacije v PREDLOGE del nastavitve.py mapa.

PREDLOGE = [

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

Ustvarite model za tabelo baze podatkov:

Odprite modelov.py datoteko iz bookapp mapo in dodajte naslednji skript, da določite strukturo knjige mize. Knjiga razred je definiran za ustvarjanje tabele z imenom knjige z naslov, avtor, cena, in objavljeno_ leto polja. Glede na scenarij, naslov in avtor polja bodo shranjena podatki o znakih ter cena in objavljeno_ leto polja bodo shranila celoštevilske podatke. Tukaj naslov polje je definirano z edinstvenim atributom. To pomeni, da je vrednost naslov polje ne bo sprejelo podvojenih podatkov.

modelov.py

# Uvoz modelov modula
iz djanga.db modeli uvoza
# Določite razred knjige za tabelo s knjigami
razred Knjiga (modeli.Model):
naslov = modeli.CharField (max_length = 100, unique = True)
avtor = modeli.CharField (max_length = 100)
cena = modeli.IntegerField ()
objavljeno_ leto = modeli.IntegerField ()

Zaženite makemigracije ukaz za ustvarjanje nove selitve na podlagi sprememb, ki so jih naredili modeli.

$ python3 upravljanje.py makemigrations bookapp

Zaženite migrirati ukaz za izvajanje ukazov SQL in ustvarjanje vseh tabel v zbirki podatkov, ki so definirane v modelov.py mapa.

$ python3 upravljanje.py selijo

Spremenite vsebino skrbnik.py datoteko z naslednjo vsebino. Tu je razred modelov registriran z uporabo register () za prikaz knjige tabele na nadzorni plošči uprave Django.

skrbnik.py

# Uvozi skrbniški modul
iz djanga.prispevaj uvoz admin
# Uvozi model knjige
iz .modeli uvozi knjigo
# Registriraj model knjige
skrbnik.spletnem mestu.register (knjiga)

Ustvarite datoteko predloge z imenom DisplayBookList.html znotraj mapa bookapp / predloge / z naslednjim skriptom. Ta skript bo prikazal vse podatke tabele knjig v obliki tabele. Poleg tega se zanka for v skriptu uporablja za ponovitev podatkov, posredovanih iz pogledi.py mapa.

DisplayBookList.html



<br>Django bulk_create () Vadnica<br>



Seznam knjig Python







% za knjigo na object_list%



% endfor%
IDImeAvtorLeto izdajeCena
knjiga.id knjiga.naslov knjiga.avtorknjiga.objavljeno_ leto$ knjiga.cena



Spremenite vsebino pogledi.py datoteko z naslednjim skriptom. Imena modelov in predlog so določena v BulkInsert razred. get_queryset () metoda razreda je definirana v skriptu za vrnitev vseh zapisov tabele knjig. Po drugi strani, Knjiga.predmetov.vse () metoda se uporablja za vrnitev vseh zapisov tabele knjig. obstaja () metoda se v skriptu uporablja za preverjanje knjige tabela je prazna ali ne. Če se ta metoda vrne Lažno potem bo v tabelo s knjigo vstavljeno pet zapisov bulk_create () metoda.

pogledi.py

iz djanga.bližnjice uvoz upodabljajo
# Uvozi modul ListView
iz djanga.pogledi.generični uvoz ListView
# Uvozi model knjige
iz .modeli uvozi knjigo
# Določite razred za vstavljanje več podatkov
razred BulkInsert (ListView):
# Določite model
model = Knjiga
# Določite predlogo
template_name = 'DisplayBookList.html '
# Preberite tabelo vseh obstoječih zapisov knjig
queryset = Knjiga.predmetov.vse ()
# Preverite, ali je tabela s knjigami prazna ali ne
če je nabor poizvedb.obstaja () == False:
# V tabelo s knjigami hkrati vstavite 5 zapisov
Knjiga.predmetov.bulk_create ([
Knjiga (naslov = 'Python Crash Course, 2. izdaja', avtor = 'Eric Matthes', cena = 15, objavljeno leto = 2019),
Knjiga (title = 'Automate the Boring Stuff with Python, 2nd Edition', author = 'Al Sweigart', price = 30,
objavljeno_ leto = 2019),
Knjiga (naslov = 'Learning Python', avtor = 'Mark Lutz', cena = 15, objavljeno_ leto = 2019),
Knjiga (naslov = 'Head First Python', avtor = 'Paul Barry', cena = 45, objavljeno leto = 2016),
Knjiga (naslov = 'A Byte of Python', avtor = 'Swaroop C H', cena = 15, objavljeno_ leto = 2013),
]))
# Vrnite vse zapise tabele s knjigami
def get_queryset (self):
# Nastavite privzeti nabor poizvedb
vrni knjigo.predmetov.vse ()

Spremenite vsebino URL-ji.py datoteko z naslednjim skriptom. V scenariju, 'admin /' pot je določena za odpiranje nadzorne plošče za upravljanje Django, pot 'books /' pa za klic BulkInsert.as_view () metoda, ki bo v tabelo knjig vstavila pet zapisov in jih vrnila v datoteko predloge.

URL-ji.py

# Uvozi skrbniški modul
iz djanga.prispevaj uvoz admin
# Uvozi pot in vključi modul
iz djanga.pot za uvoz URL-jev
iz pogledov uvoza bookapp
urlpatterns = [
# Določite pot za skrbnika
pot ('admin /', admin.spletnem mestu.urls),
pot ('knjige /', pogledi.BulkInsert.as_view ()),
]

Odprite nadzorno ploščo za upravljanje Django in preverite, ali so podatki pravilno vstavljeni ali ne bulk_create () funkcijo.

Vstavljeni zapisi knjige tabela bo prikazana v brskalniku po izvedbi naslednjega URL-ja.

http: // localhost: 8000 / knjige /

Zaključek:

V tabelo zbirke podatkov Django lahko na različne načine vstavite več zapisov z uporabo bulk_create (). V tej vadnici je prikazan preprost način vstavljanja več zapisov v tabelo zbirke podatkov, ki uporabnikom Django pomaga razumeti logiko procesa.

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...