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:
- Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
- Ustvarite projekt Django
- 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 bookappZaž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 uporabnikaDodajte 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 modulaiz 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 bookappZaženite migrirati ukaz za izvajanje ukazov SQL in ustvarjanje vseh tabel v zbirki podatkov, ki so definirane v modelov.py mapa.
$ python3 upravljanje.py selijoSpremenite 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 moduliz 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
Django bulk_create () Vadnica
Seznam knjig Python
ID | Ime | Avtor | Leto izdaje | Cena |
---|---|---|---|---|
knjiga.id | knjiga.naslov | knjiga.avtor | knjiga.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 moduliz 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.