Předpoklady:
Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly.
A. Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
B. Vytvořte projekt Django
C. Spusťte server Django a zkontrolujte, zda server funguje správně nebo ne.
Nastavení aplikace Django:
A. Spuštěním následujícího příkazu vytvořte aplikaci Django s názvem databáze.
$ python3 spravovat.py startapp databaseappB. Spuštěním následujícího příkazu vytvořte uživatele pro přístup k databázi Django. Pokud jste uživatele již dříve dokončili, nemusíte tento příkaz spouštět.
$ python3 spravovat.py vytvoří superuživateleC. Přidejte název aplikace do INSTALLED_APP část nastavení.py soubor.
INSTALLED_APPS = […
'validationapp'
]
D. Vytvořte složku s názvem šablony uvnitř databáze složku a nastavte šablony umístění aplikace v ŠABLONY část nastavení.py soubor.
TEMPLATES = [… .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / templates'],
… .
,
]
Návrhový model s výchozími a nulovými atributy:
Upravte modely.py soubor s následujícím skriptem k vytvoření tabulky s názvem produkty která bude obsahovat čtyři pole bez pole id. Tyto jména, cena, datum výroby a datum ukončení platnosti. Hodnota nula atribut je nastaven na True pro všechna pole. Hodnota prázdné místo atribut je nastaven na True pro všechna pole také. To znamená, že uživatel může nechat pole prázdná před odesláním formuláře, který bude používat tento model. The výchozí hodnota atributu je nastavena pro cenu, datum výroby a datum ukončení platnosti.
modely.py
# Modul importu modelůod djanga.db modely importu
# Vytvořte třídu a definujte strukturu tabulky učitelů
třída Produkt (modely.Modelka):
name = modely.CharField (max_length = 50, null = True, blank = True)
cena = modely.IntegerField (null = True, default = ", blank = True)
manufacturing_date = modely.DateField (null = True, výchozí = '0000-00-00', prázdné = True)
expire_date = modely.DateField (null = True, výchozí = '0000-00-00', prázdné = True)
Spuštěním následujících migračních příkazů vytvořte potřebné migrační soubory a databázovou tabulku databáze SQLite.
$ python3 spravovat.py makemigrations databaseapp$ python3 spravovat.py migrovat
Vkládání dat pomocí Django Administration Dashboard:
Upravit obsah správce.py soubor s následujícím skriptem pro registraci modelu v databázi.
admin.py
Upravte adresy URL.py soubor s následujícím skriptem k definování cesty k otevření Django Administrative Dashboard.
adresy URL.py
# Importovat modul správceod djanga.contrib import admin
# Importovat modul cesty
od djanga.cesta pro import adres URL
# Definujte cestu pro zákazníka a administrátora
urlpatterns = [
cesta ('admin /', admin.stránky.adresy URL)
]
Nyní spusťte server Django a přejděte na Django Administrative Dashboard pomocí následující adresy URL.
http: // localhist: 8000 / admin
kliknutím na otevřete formulář pro zadání produktu Přidat produkt. Pokud uživatel odešle formulář bez vložení dat, zobrazí se v prohlížeči následující výstup. Zde dvě pole data zobrazují chyby, protože výchozí hodnota pole data není v platném formátu.
Po přidání platných dat o datu se zobrazí následující výstup. Tady cena pole je prázdné pro použití výchozího atributu.
Vkládání dat pomocí šablony:
Způsob vkládání dat do produkty v této sekci je uvedena tabulka používající formulář HTML. Zde se vygenerují prvky formuláře na základě modelu, který je vytvořen dříve.
formuláře.py
# Modul pro import formulářůz importních formulářů django
# Importujte model zákazníka
z dbapp.modely importují produkt
# Definujte třídu pro formulář zákazníka
třída ProductForm (formuláře.ModelForm):
třída Meta:
model = Produkt
fields = '__all__'
Vytvořte soubor HTML s názvem produkt.html uvnitř šablony složka aplikace s následujícím skriptem. Údaje uživatele budou odeslány, když uživatel klikne na ikonu Uložit knoflík.
produkt.html
Vstupní formulář zákazníka
Upravte pohledy.py soubor s následujícím skriptem pro vložení dat do souboru produkty tabulka po ověření formuláře. AddProduct () ve skriptu je definována funkce ke kontrole, zda je formulář odeslán nebo ne, a pokud je formulář odeslán, zkontroluje, zda jsou údaje formuláře platné nebo neplatné. Li je platná() funkce se vrací skutečný, pak budou data vložena do produkty a v prohlížeči se zobrazí zpráva o úspěchu.
pohledy.py
# Importujte modul HttpResponseod djanga.http.import odpovědí HttpResponse
# Import modulu vykreslení
od djanga.zástupce importovat vykreslení
# Import ProductForm
z dbapp.import formulářů ProductForm
# Definujte funkci pro přidání položky produktu
def AddProduct (požadavek):
na žádost.method == "POST":
form = ProductForm (požadavek.POŠTA)
# Pokud jsou údaje formuláře platné nebo ne
pokud forma.je platná():
Snaž se:
# Uložte data formuláře do databáze
formulář.Uložit()
# Definujte zprávu pro uživatele
data = ['
Produkt přidán.
']# Vraťte odpověď
vrátit HttpResponse (data)
až na:
složit
jiný:
# Definujte objekt formuláře
form = ProductForm ()
# Zobrazit formulář pro zadání produktu
vrátit vykreslení (požadavek, 'produkt.html ', ' form ': form)
Upravte adresy URL.py soubor s následujícím skriptem k definování cesty k volání funkce zobrazení.
adresy URL.py
# Importovat modul správceod djanga.contrib import admin
# Importovat modul cesty
od djanga.cesta pro import adres URL
# Importovat pohled
ze zobrazení importu dbapp
# Definujte cestu pro zákazníka a administrátora
urlpatterns = [
cesta (", zobrazení.AddProduct),
cesta ('admin /', admin.stránky.adresy URL)
]
Nyní spusťte server Django a otevřete základní adresu URL v prohlížeči.
http: // localhist: 8000 /
Zobrazí se následující formulář.
Následující ValueError se zobrazí, pokud uživatel odešle formulář bez přidání jakýchkoli údajů do formuláře. Tady cena pole je celé číslo, které nemůže být prázdným řetězcem.
Pokud uživatel zadá platná data, jako je formulář níže, a stiskne Uložit tlačítko, do databáze se vloží nový produktový záznam.
Následující obrázek se zobrazí, pokud otevřete nově vložený záznam z Django Dashboard.
Závěr:
V tomto kurzu byl navržen model pomocí null a výchozích atributů. Dále se zde ukázaly způsoby vkládání dat do těchto polí v back-endu a front-endu, které čtenáři pomohou znát použití výchozích a nulových atributů v databázi Django.