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 databaseappB. 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 sukurianaudotojasC. 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
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.