Piton

Kako koristiti bulk_create () u Djangu?

Kako koristiti bulk_create () u Djangu?

Django framework se može koristiti za stvaranje web aplikacije s bazom podataka upisivanjem skripte modeli.py i pogleda.py datoteke aplikacije Django. Podaci se mogu umetnuti u tablice baze podataka pomoću Nadzorne ploče Django administracije ili pisanjem skripte u pogleda.py datoteka. Nadzorna ploča administracije Django zahtijeva prijavu za autentificiranog korisnika za pristup tablicama baze podataka. Pojedinačni ili više zapisa mogu se umetnuti u tablice baze podataka pisanjem skripte. bulk_create () metoda je jedan od načina za umetanje više zapisa u tablicu baze podataka. Kako bulk_create () metoda koja se koristi za umetanje više podataka u tablicu baze podataka Django prikazat će se u ovom vodiču.

Preduvjeti:

Prije vježbanja skripte ovog vodiča, morate izvršiti sljedeće zadatke:

  1. Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
  2. Stvorite Django projekt
  3. Pokrenite Django poslužitelj kako biste provjerili poslužitelj ispravno radi ili ne

Postavljanje aplikacije Django:

Pokrenite sljedeću naredbu za stvaranje Django aplikacije s imenom bookapp.

$ python3 upravljanje.py startapp bookapp

Pokrenite sljedeću naredbu za stvaranje korisnika za pristup Django bazi podataka. Ako ste ga već stvorili, tada ne trebate pokretati naredbu.

$ python3 upravljanje.py stvarauporabitelja

Dodajte naziv aplikacije u INSTALLED_APP dio postavke.py datoteka.

INSTALLED_APPS = [
..
'bookapp'
]

Stvorite mapu s imenom predlošci unutar bookapp mapu i postavite mjesto predloška aplikacije u PREDLOZI dio postavke.py datoteka.

PREDLOZI = [

.. .
'DIRS': ['/ home / fahmida / django_pro / bookapp / predlošci'],
.. .
,
]

Stvorite model za tablicu baze podataka:

Otvori modeli.py datoteka iz bookapp mapu i dodajte sljedeću skriptu da definirate strukturu knjige stolovi. Knjiga klasa definirana je za stvaranje tablice s nazivom knjige s naslov, autor, cijena, i objavljeno_godina polja. Prema scenariju, titula i Autor polja će pohranjivati podaci o znakovima, te cijena i objavljena_ godina polja pohranit će cjelobrojne podatke. Evo, titula polje definirano je jedinstvenim atributom. To znači da je vrijednost titula polje neće prihvatiti nikakve dvostruke podatke.

modeli.py

# Uvoz modula modula
iz djanga.db modeli uvoza
# Definirajte razred knjige za tablicu knjiga
razred Knjiga (modeli.Model):
naslov = modeli.CharField (max_length = 100, jedinstveno = True)
autor = modeli.CharField (max_length = 100)
cijena = modeli.IntegerField ()
objavljeno_godina = modeli.IntegerField ()

Pokrenite makemigracije naredba za stvaranje nove migracije na temelju promjena koje su izvršili modeli.

$ python3 upravljanje.py makemigrations bookapp

Pokrenite migrirati naredba za izvršavanje SQL naredbi i stvaranje svih tablica u bazi podataka koje su definirane u modeli.py datoteka.

$ python3 upravljanje.py migrirati

Izmijenite sadržaj admin.py datoteka sa sljedećim sadržajem. Ovdje je klasa Book modela registrirana pomoću Registar() metoda za prikaz knjige tablice na nadzornoj ploči administracije Django.

admin.py

# Uvoz administrativnog modula
iz djanga.doprinos uvoz admin
# Uvoz modela knjige
iz .modeli uvoz knjiga
# Registriraj model knjige
admin.web mjesto.registar (knjiga)

Stvorite datoteku predloška s imenom DisplayBookList.html unutar bookapp / predlošci / mapa sa sljedećom skriptom. Ova će skripta prikazati sve podatke tablice knjiga u tabličnom obliku. Osim toga, for se u skripti koristi za ponavljanje podataka proslijeđenih iz pogleda.py datoteka.

DisplayBookList.html



<br>Vodič za Django bulk_create ()<br>



Popis knjiga Pythona







% za knjigu na object_list%



% endfor%
iskaznicaImeAutorGodina izdavanjaCijena
knjiga.iskaznica knjiga.titula knjiga.Autorknjiga.objavljeno_godina$ knjiga.cijena



Izmijenite sadržaj pogleda.py datoteka sa sljedećom skriptom. Imena modela i predloška definirana su u BulkInsert razred. get_queryset () metoda klase definirana je u skripti za vraćanje svih zapisa tablice knjiga. S druge strane, Knjiga.predmeta.svi() metoda koristi se za vraćanje svih zapisa tablice knjiga. postoji () metoda koristi se u skripti za provjeru knjige tablica je prazna ili nije. Ako se ova metoda vrati Lažno tada će se u tablicu knjiga umetnuti pet zapisa pomoću bulk_create () metoda.

pogleda.py

iz djanga.prečaci uvoz render
# Uvoz modula ListView
iz djanga.pogleda.generički uvoz ListView
# Uvoz modela knjige
iz .modeli uvoz knjiga
# Definirajte klasu za umetanje više podataka
klasa BulkInsert (ListView):
# Definirajte model
model = Knjiga
# Definirajte predložak
template_name = 'DisplayBookList.html '
# Pročitajte sve postojeće tablice knjiga
queryset = Knjiga.predmeta.svi()
# Provjerite je li tablica knjiga prazna ili nije
ako je set upita.postoji () == Netačno:
# U tablicu knjiga istodobno umetnite 5 zapisa
Knjiga.predmeta.bulk_create ([
Knjiga (naslov = 'Python Crash Course, drugo izdanje', autor = 'Eric Matthes', cijena = 15, objavljeno_godina = 2019),
Knjiga (naslov = 'Automatizirajte dosadne stvari s Pythonom, drugo izdanje', autor = 'Al Sweigart', cijena = 30,
objavljeno_godina = 2019),
Knjiga (naslov = 'Učenje Pythona', autor = 'Mark Lutz', cijena = 15, objavljeno_godina = 2019),
Knjiga (naslov = 'Head First Python', autor = 'Paul Barry', cijena = 45, objavljeno_godina = 2016),
Knjiga (naslov = 'A Byte of Python', autor = 'Swaroop C H', cijena = 15, objavljeno_godina = 2013),
]))
# Vrati sve zapise tablice knjiga
def get_queryset (self):
# Postavite zadani skup upita
povratak Knjiga.predmeta.svi()

Izmijenite sadržaj url adrese.py datoteka sa sljedećom skriptom. U scenariju, 'admin /' put je definiran za otvaranje nadzorne ploče uprave Django, a put 'books /' definiran je za pozivanje BulkInsert.as_view () metoda koja će umetnuti pet zapisa u tablicu knjiga i vratiti ih u datoteku predloška.

url adrese.py

# Uvoz administrativnog modula
iz djanga.doprinos uvoz admin
# Uvezi put i uključi modul
iz djanga.put uvoza URL-ova
iz pogleda uvoza bookapp
urlpatterns = [
# Definirajte put za administratora
put ('admin /', admin.web mjesto.URL-ovi),
put ('knjige /', prikazi.BulkInsert.as_view ()),
]

Otvorite nadzornu ploču administracije Django da biste provjerili jesu li podaci umetnuti ispravno ili ne bulk_create () funkcija.

Umetnuti zapisi knjige Tablica će se prikazati u pregledniku nakon izvršavanja sljedećeg URL-a.

http: // localhost: 8000 / knjige /

Zaključak:

Višestruki zapisi mogu se umetnuti u tablicu baze podataka Django na različite načine pomoću bulk_create (). Jednostavan način umetanja više zapisa u tablicu baze podataka pomoću ove metode prikazan je u ovom vodiču kako bi korisnici Django-a razumjeli logiku koja stoji iza procesa.

Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...
Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...
Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...