Krajta

Jak používat bulk_create () v Django?

Jak používat bulk_create () v Django?

Rámec Django lze použít k vytvoření webové aplikace s databází napsáním skriptu modely.py a pohledy.py soubory aplikace Django. Data lze vložit do databázových tabulek pomocí Django Administration Dashboard nebo napsáním skriptu do pohledy.py soubor. Django Administration Dashboard vyžaduje pro přístup k tabulkám databáze přihlášení pro ověřeného uživatele. Jeden nebo více záznamů lze vložit do databázových tabulek napsáním skriptu. bulk_create () metoda je jedním ze způsobů, jak vložit více záznamů do databázové tabulky. Jak bulk_create () metoda se používá k vložení více dat do tabulky databáze Django se zobrazí v tomto kurzu.

Předpoklady:

Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly:

  1. Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
  2. Vytvořte projekt Django
  3. Spusťte server Django a zkontrolujte, zda server funguje správně nebo ne

Nastavení aplikace Django:

Spuštěním následujícího příkazu vytvořte aplikaci Django s názvem bookapp.

$ python3 spravovat.py startapp bookapp

Spuštěním následujícího příkazu vytvořte uživatele pro přístup k databázi Django. Pokud jste již jeden vytvořili, nemusíte tento příkaz spouštět.

$ python3 spravovat.py vytvoří superuživatele

Přidejte název aplikace do INSTALLED_APP část nastavení.py soubor.

INSTALLED_APPS = [

'bookapp'
]

Vytvořte složku s názvem šablony uvnitř bookapp složku a nastavte umístění šablony aplikace v ŠABLONY část nastavení.py soubor.

TEMPLATES = [

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

Vytvořte model pro databázovou tabulku:

Otevři modely.py soubor z bookapp složku a přidejte následující skript k definování struktury knihy tabulky. Rezervovat třída je definována pro vytvoření tabulky s názvem knihy s název, autor, cena, a publikovaný_rok pole. Podle scénáře, titul a autor pole se uloží znaková data a cena a publikovaný_rok pole uloží celočíselná data. Tady titul pole je definováno jedinečným atributem. To znamená, že hodnota titul pole nepřijme žádná duplicitní data.

modely.py

# Modul importu modelů
od djanga.db modely importu
# Definujte třídu Book pro tabulku knih
třída Kniha (modely.Modelka):
title = modely.CharField (max_length = 100, unique = True)
autor = modely.CharField (max_length = 100)
cena = modely.IntegerField ()
publikovaný_rok = modely.IntegerField ()

Spusťte makemigrace příkaz k vytvoření nové migrace na základě změn provedených modely.

$ python3 spravovat.py makemigrations bookapp

Spusťte migrovat příkaz k provedení příkazů SQL a vytvoření všech tabulek v databázi, které jsou definovány v modely.py soubor.

$ python3 spravovat.py migrovat

Upravit obsah souboru admin.py soubor s následujícím obsahem. Zde je třída Book modelů registrována pomocí Registrovat() způsob zobrazení knihy tabulky na řídicím panelu správy Django.

admin.py

# Importovat modul správce
od djanga.contrib import admin
# Importovat model knihy
z .modely importovat knihu
# Zaregistrujte model knihy
admin.stránky.registrovat (rezervovat)

Vytvořte soubor šablony s názvem DisplayBookList.html uvnitř bookapp / templates / folder s následujícím skriptem. Tento skript zobrazí všechna data tabulky knih ve formě tabulky. Kromě toho se ve skriptu používá smyčka for k iteraci dat předávaných z pohledy.py soubor.

DisplayBookList.html



<br>Výukový program Django bulk_create ()<br>



Seznam knih v Pythonu







% pro knihu v seznamu_objektů%



% endfor%
IDnázevAutorRok vydáníCena
rezervovat.id rezervovat.titul rezervovat.autorrezervovat.publikovaný_rok$ kniha.cena



Upravit obsah souboru pohledy.py soubor s následujícím skriptem. Názvy modelů a šablon jsou definovány v BulkInsert třída. get_queryset () ve skriptu je definována metoda třídy pro vrácení všech záznamů tabulky knih. Na druhou stranu, Rezervovat.předměty.Všechno() metoda se používá k vrácení všech záznamů tabulky knih. existuje () ve skriptu se používá metoda ke kontrole knihy tabulka je prázdná nebo ne. Pokud se tato metoda vrátí Nepravdivé poté se do tabulky knih vloží pět záznamů pomocí bulk_create () metoda.

pohledy.py

od djanga.zástupce importovat vykreslení
# Import modulu ListView
od djanga.pohledy.obecný import ListView
# Importovat model knihy
z .modely importovat knihu
# Definujte třídu pro vložení více dat
třída BulkInsert (ListView):
# Definujte model
model = Kniha
# Definujte šablonu
template_name = 'DisplayBookList.html '
# Přečíst všechny existující záznamy o tabulce knih
sada dotazů = Kniha.předměty.Všechno()
# Zkontrolujte, zda je tabulka knih prázdná nebo ne
pokud je sada dotazů.existuje () == False:
# Vložte 5 záznamů do tabulky knih najednou
Rezervovat.předměty.bulk_create ([
Kniha (title = 'Python Crash Course, 2nd Edition', author = 'Eric Matthes', price = 15, published_year = 2019),
Kniha (title = 'Automate the Boring Stuff with Python, 2nd Edition', author = 'Al Sweigart', price = 30,
Published_year = 2019),
Kniha (title = 'Learning Python', author = 'Mark Lutz', price = 15, published_year = 2019),
Kniha (title = 'Head First Python', author = 'Paul Barry', price = 45, published_year = 2016),
Kniha (title = 'A Byte of Python', author = 'Swaroop C H', price = 15, published_year = 2013),
])
# Vrátit všechny záznamy tabulky knih
def get_queryset (self):
# Nastavit výchozí sadu dotazů
vrátit knihu.předměty.Všechno()

Upravit obsah souboru adresy URL.py soubor s následujícím skriptem. Ve scénáři, dále jen ‚admin / ' path is defined to open the Django Administration Dashboard and the 'books /' path is defined to call the BulkInsert.as_view () metoda, která vloží pět záznamů do tabulky knih a vrátí záznamy do souboru šablony.

adresy URL.py

# Importovat modul správce
od djanga.contrib import admin
# Importovat cestu a zahrnout modul
od djanga.cesta pro import adres URL
ze zobrazení importu bookapp
urlpatterns = [
# Definujte cestu pro administrátora
cesta ('admin /', admin.stránky.adresy URL),
cesta ('knihy /', pohledy.BulkInsert.as_view ()),
]

Otevřete Django Administration Dashboard a zkontrolujte, zda jsou data správně vložena nebo nepoužíváte bulk_create () funkce.

Vložené záznamy knihy tabulka se zobrazí v prohlížeči po provedení následující adresy URL.

http: // localhost: 8000 / knihy /

Závěr:

Více záznamů lze do databáze databáze Django vložit různými způsoby pomocí bulk_create (). V tomto kurzu byl ukázán jednoduchý způsob vkládání více záznamů do databázové tabulky pomocí této metody, který uživatelům Django pomůže pochopit logiku procesu.

Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...
Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...
Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...