Django

Použití výchozí hodnoty NULL v modelu Django

Použití výchozí hodnoty NULL v modelu Django
Model je jednou z významných částí databázové aplikace Django. Model definuje strukturu databáze. Datový typ databázové tabulky a způsob vkládání dat na základě různých atributů jsou popsány v modelu. Ověření dat lze řídit také pomocí modelu. Každá tabulka v databázi obsahuje určitý počet polí nebo sloupců. Model definuje typ každého pole tabulky. Výchozí atribut se v modelu používá k nastavení výchozí hodnoty pro konkrétní oblast, pokud uživatel pro toto pole nevloží žádná data. Výchozí hodnota pole může být prázdný nebo jakoukoli konkrétní hodnotu. The nula a prázdný hodnoty nejsou stejné. nula se používá k definování, že prázdná hodnota je pro konkrétní pole povolena či nikoli. Pokud nula je nastaven na Nepravdivé, pak prázdný řetězec nebude povolen v poli s celočíselným typem, ale prázdný řetězec lze přiřadit v poli s řetězcem. Pokud nula je nastaven na Skutečný, pak bude hodnota NULL uvedena v poli celočíselného typu místo prázdného řetězce. blank se používá hlavně k ověření formuláře a nekontroluje datový typ pole. Způsob použití výchozí a nula atributy v modelu Django se v tomto kurzu ukázaly.

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 databaseapp

B. 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živatele

C. 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ávce
od 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



% csrf_token%
formulář.as_p

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 HttpResponse
od 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ávce
od 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.

Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...
Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...