Django

NULL numatytosios vertės naudojimas „Django“ modelyje

NULL numatytosios vertės naudojimas „Django“ modelyje
Modelis yra viena iš svarbiausių duomenų bazėje pagrįstos „Django“ programos dalių. Modelis apibrėžia duomenų bazės struktūrą. Duomenų bazės lentelės duomenų tipas ir duomenų įterpimo būdas pagal skirtingus atributus aprašytas Modelyje. Duomenų patvirtinimą galima kontroliuoti ir naudojant modelį. Kiekvienoje duomenų bazės lentelėje yra tam tikras laukų ar stulpelių skaičius. Modelis apibrėžia kiekvieno lentelės lauko tipą. Numatytasis atributas naudojamas modelyje nustatant numatytąją tam tikros srities vertę, jei to lauko vartotojas neįterpia jokių duomenų. Numatytoji lauko reikšmė gali būti tuščias ar bet kurią konkrečią vertę. The niekinis ir tuščias vertės nėra vienodos. niekinis yra naudojamas apibrėžti, ar tuščia reikšmė tam tikram laukui leidžiama, ar ne. Jei niekinis yra nustatytas į Klaidinga, tada tuščia eilutė nebus leidžiama įvesti į skaičių skaičius, tačiau tuščią eilutę galima priskirti eilutės tipo lauke. Jei niekinis yra nustatytas į Tiesa, tada NULL reikšmė bus įvesta į skaičių įrašytą lauką vietoje tuščios eilutės. blank yra naudojamas tikrinant formą daugiausia ir netikrina lauko duomenų tipo. Naudojimo būdas numatytas ir niekinis „Django“ modelio atributai buvo parodyti šioje pamokoje.

Būtinos sąlygos:

Prieš praktikuodami šios mokymo programos scenarijų, turite atlikti šias užduotis.

A. Įdiekite „Django“ versiją 3+ „Ubuntu 20+“ (geriausia)
B. Sukurkite „Django“ projektą
C. Paleiskite „Django“ serverį, kad patikrintumėte, ar serveris veikia tinkamai.

Nustatykite „Django“ programą:

A. Norėdami sukurti „Django“ programą, paleiskite šią komandą duomenų bazės priedas.

$ python3 valdyti.py startapp databaseapp

B. Vykdykite šią komandą, kad sukurtumėte vartotoją, kad pasiektumėte „Django“ duomenų bazę. Jei vartotoją baigėte anksčiau, komandos paleisti nereikia.

$ python3 valdyti.py sukurianaudotojas

C. Pridėkite programos pavadinimą INSTALLED_APP dalis nustatymų.py failą.

INSTALLED_APPS = [

„validationapp“
]

D. Sukurkite aplanką pavadinimu šablonai viduje duomenų bazės priedas aplanką ir nustatykite šablonai programos vieta Šablonai dalis parametrus.py failą.

Šablonai = [

… .
„DIRS“: ['/ home / fahmida / django_pro / databaseaseapp / templates'],
… .
,
]

Dizaino modelis su numatytaisiais ir nuliniais atributais:

Keisti modeliai.py failą su šiuo scenarijumi, kad sukurtumėte lentelę pavadintą Produktai kuriame bus keturi laukai be ID lauko. Šie pavadinimai, kaina, gamybos data ir galiojimo pabaigos data. Vertė niekinis Visiems laukams atributas nustatytas kaip Tiesa. Vertė ruošinys Visiems laukams atributas taip pat nustatytas kaip Tiesa. Tai reiškia, kad prieš pateikdamas formą, kuri naudos šį modelį, vartotojas gali laukus laikyti tuščius. The numatytas atributo vertė nustatoma kainai, gamybos_datai ir galiojimo pabaigos datai.

modeliai.py

# Importuoti modelių modulį
nuo django.db importavimo modeliai
# Sukurkite klasę, kad apibrėžtumėte Mokytojų lentelės struktūrą
klasės produktas (modeliai.Modelis):
vardas = modeliai.„CharField“ (maks. Ilgis = 50, nulis = tiesa, tuščias = teisingas)
kaina = modeliai.„IntegerField“ (nulis = tiesa, numatytasis = ", tuščias = teisingas)
gamybos data = modeliai.DateField (null = True, numatytasis = '0000-00-00', tuščias = True)
expire_date = modeliai.DateField (null = True, numatytasis = '0000-00-00', tuščias = True)

Paleiskite šias perėjimo komandas, kad sukurtumėte reikiamus perkėlimo failus ir SQLite duomenų bazės duomenų bazės lentelę.

$ python3 valdyti.py makemigrations databaseapp
$ python3 valdyti.py migruoti

Duomenų įterpimas naudojant „Django Administration“ informacijos suvestinę:

Keisti administratorius.py failą su šiuo scenarijumi, kad užregistruotumėte modelį duomenų bazėje.

administratorius.py
Keisti URL.py failas su šiuo scenarijumi, skirtas nustatyti kelią atidaryti „Django“ administracinę informacijos suvestinę.

URL.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importo kelio modulis
nuo django.URL importavimo kelias
# Apibrėžkite kliento ir administratoriaus kelią
urlpatterns = [
kelias ('admin /', admin.svetainėje.URL)
]

Dabar paleiskite „Django“ serverį ir eikite į „Django“ administracinę informacijos suvestinę naudodami šį URL.

http: // localhist: 8000 / admin

atidarykite produkto įvedimo formą spustelėdami Pridėti produktą. Jei vartotojas pateikia formą neįterpdamas duomenų, naršyklėje pasirodys tokia išvestis. Čia du datos laukai rodo klaidas, nes numatytoji datos lauko vertė yra netinkamo formato.

Šis išvestis bus rodomas pridėjus galiojančius datos duomenis. Čia, kaina laukas tuščias, jei norite naudoti numatytąjį atributą.

Duomenų įterpimas naudojant šabloną:

Duomenų įterpimo į Produktai lentelė naudojant HTML formą buvo parodyta šiame skyriuje. Čia formos elementai bus sugeneruoti remiantis anksčiau sukurtu modeliu.

formos.py

# Importuoti formų modulį
iš django importo formų
# Importuoti kliento modelį
iš dbapp.modeliai importuoja Produktą
# Apibrėžkite kliento formos klasę
klasės „ProductForm“ (formos.„ModelForm“):
klasė Meta:
modelis = produktas
laukai = '__all__'

Sukurkite HTML failą pavadinimu produktas.HTML viduje šablonai programos aplanką su šiuo scenarijumi. Formos duomenys bus pateikti vartotojui spustelėjus Sutaupyti mygtuką.

produktas.HTML

Kliento įrašo forma



% csrf_token%
forma.as_p

Keisti Peržiūrų.py failą su šiuo scenarijumi įterpti duomenis į Produktai lentelę patvirtinus formą. AddProduct () Funkcija yra apibrėžta scenarijuje, norint patikrinti, ar forma pateikta, ar ne. Jei forma bus pateikta, ji patikrins, ar formos duomenys yra teisingi ar neteisingi. Jei galiojantis() funkcija grąžinama tiesa, tada duomenys bus įterpti į Produktai lentelę, o naršyklėje bus rodomas sėkmės pranešimas.

Peržiūrų.py

# Importuoti „HttpResponse“ modulį
nuo django.http.atsakymo importas HttpResponse
# Importuoti pateikimo modulį
nuo django.nuorodos importuoti atvaizdavimą
# Importuoti „ProductForm“
iš dbapp.formos importuoja „ProductForm“
# Apibrėžkite funkciją, kad pridėtumėte produkto įrašą
def „AddProduct“ (užklausa):
jei prašoma.metodas == „POST“:
forma = ProductForm (užklausa.POST)
# Jei formos duomenys yra teisingi, ar ne
jei forma.galiojantis():
bandyti:
# Išsaugokite formos duomenis į duomenų bazę
forma.sutaupyti()
# Apibrėžkite pranešimą vartotojui
duomenys = ['

Pridėtas produktas.

']
# Grąžinkite atsakymą
grąžinti „HttpResponse“ (duomenys)
išskyrus:
praeiti
Kitas:
# Apibrėžkite formos objektą
forma = ProductForm ()
# Rodyti produkto įvedimo formą
grąžinti pateikimą (užklausa, 'produktas.html ', ' forma ': forma)

Keisti URL.py failą su šiuo scenarijumi, kad būtų galima nustatyti kelią, kaip iškviesti peržiūros funkciją.

URL.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importo kelio modulis
nuo django.URL importavimo kelias
# Importuoti rodinį
iš dbapp importo rodinių
# Apibrėžkite kliento ir administratoriaus kelią
urlpatterns = [
kelias (", peržiūros.„AddProduct“),
kelias ('admin /', admin.svetainėje.URL)
]

Dabar paleiskite „Django“ serverį ir naršyklėje atidarykite pagrindinį URL.

http: // vietinis: 8000 /

Pasirodys tokia forma.

Sekantis „ValueError“ pasirodys, jei vartotojas pateiks formą nepridėdamas jokių duomenų į formą. Čia, kaina laukas yra sveikasis skaičius, kuris negali būti tuščia eilutė.

Jei vartotojas įveda galiojančius duomenis, pavyzdžiui, žemiau esančią formą, ir paspaudžia Sutaupyti mygtuką, į duomenų bazę bus įterptas naujas produkto įrašas.

Šis vaizdas bus rodomas, jei atidarysite naujai įterptą įrašą iš „Django“ informacijos suvestinės.

Išvada:

Modelis buvo sukurtas naudojant šioje pamokoje atributus „null“ ir „default“. Toliau parodyti būdai, kaip įterpti duomenis į šiuos laukus galinėje ir išorinėje srityse, kad skaitytojas galėtų sužinoti numatytųjų ir niekinių atributų naudojimą „Django“ duomenų bazėje.

5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...
Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...