Preduvjeti:
Prije vježbanja skripte ovog vodiča, morate izvršiti sljedeće zadatke.
A. Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
B. Stvorite Django projekt
C. Pokrenite Django poslužitelj kako biste provjerili poslužitelj ispravno radi ili ne.
Postavljanje aplikacije Django:
A. Pokrenite sljedeću naredbu za stvaranje Django aplikacije s imenom baza podatakaapp.
$ python3 upravljanje.py startapp baza podatakaappB. Pokrenite sljedeću naredbu za stvaranje korisnika za pristup Django bazi podataka. Ako ste već upotrijebili korisnika, tada ne morate pokretati naredbu.
$ python3 upravljanje.py stvarauporabiteljaC. Dodajte naziv aplikacije u INSTALLED_APP dio postavki.py datoteka.
INSTALLED_APPS = [..
'validationapp'
]
D. Stvorite mapu s imenom predlošci unutar baza podatakaapp mapu i postavite predložaka mjesto aplikacije u PREDLOZI dio postavke.py datoteka.
PREDLOZI = [.. .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / predlošci'],
.. .
,
]
Dizajn model sa zadanim i null atributima:
Izmijenite modeli.py datoteku sa sljedećom skriptom za stvaranje tablice s imenom proizvoda koji će sadržavati četiri polja bez polja id. Ovi imena, cijena, datum proizvodnje i datum isteka. Vrijednost null atribut je postavljen na True za sva polja. Vrijednost prazno atribut je postavljen na True za sva polja. To znači da korisnik može zadržati polja prazna prije slanja obrasca koji će koristiti ovaj model. The zadano vrijednost atributa postavlja se za cijenu, datum_proizvodnje i datum isteka.
modeli.py
# Uvoz modula modulaiz djanga.db modeli uvoza
# Stvorite razred za definiranje strukture tablice učitelja
razred Proizvod (modeli.Model):
ime = modeli.CharField (max_length = 50, null = True, blank = True)
cijena = modeli.IntegerField (null = True, default = ", blank = True)
datum_proizvodnje = modeli.DateField (null = True, zadani = '0000-00-00', blank = True)
datum isteka = modeli.DateField (null = True, zadani = '0000-00-00', blank = True)
Izvedite sljedeće naredbe za migraciju da biste stvorili potrebne datoteke za migraciju i tablicu baze podataka SQLite baze podataka.
$ python3 upravljanje.py makemigrations databaseapp$ python3 upravljanje.py migrirati
Umetanje podataka pomoću nadzorne ploče za administraciju Django:
Izmijenite sadržaj admin.py datoteku sa sljedećom skriptom za registraciju modela u bazu podataka.
admin.py
Izmijenite url adrese.py datoteku sa sljedećom skriptom za definiranje putanje za otvaranje Django administrativne nadzorne ploče.
url adrese.py
# Uvoz administrativnog modulaiz djanga.doprinos uvoz admin
# Uvoz modula puta
iz djanga.put uvoza URL-ova
# Definirajte put za kupca i administratora
urlpatterns = [
put ('admin /', admin.web mjesto.URL-ovi)
]
Sada pokrenite Django poslužitelj i idite na Django administrativnu nadzornu ploču pomoću sljedećeg URL-a.
http: // localhist: 8000 / admin
otvorite obrazac za prijavu proizvoda klikom Dodajte proizvod. Ako korisnik preda obrazac bez umetanja podataka, tada će se sljedeći izlaz pojaviti u pregledniku. Ovdje dva polja s datumima prikazuju pogreške jer zadana vrijednost polja s datumom nije u valjanom formatu.
Sljedeći će se izlaz pojaviti nakon dodavanja važećih podataka o datumu. Evo, cijena polje je prazno za upotrebu zadanog atributa.
Umetanje podataka pomoću predloška:
Način umetanja podataka u proizvoda tablica koja koristi HTML obrazac prikazana je u ovom odjeljku. Ovdje će se elementi obrasca generirati na temelju prethodno izrađenog modela.
oblici.py
# Uvoz modula obrazacaiz obrazaca za uvoz django
# Uvoz modela kupca
iz dbappa.modeli uvoz proizvoda
# Definirajte klasu za obrazac kupca
razred ProductForm (obrasci.ModelForm):
klasa Meta:
model = Proizvod
polja = '__sve__'
Stvorite HTML datoteku s imenom proizvod.html unutar predlošci mapu aplikacije sa sljedećom skriptom. Podaci obrasca bit će poslani kada korisnik klikne na Uštedjeti dugme.
proizvod.html
Obrazac za prijavu kupca
Izmijenite pogleda.py datoteku sa sljedećom skriptom za umetanje podataka u proizvoda tablica nakon provjere valjanosti obrasca. AddProduct () funkcija je definirana u skripti da provjeri je li obrazac poslan ili nije, a ako je obrazac poslan, tada će provjeriti jesu li podaci obrasca valjani ili nevaljani. Ako is_valid () funkcija se vraća pravi, tada će se podaci umetnuti u proizvoda tablici, a u pregledniku će se prikazati poruka o uspjehu.
pogleda.py
# Uvoz modula HttpResponseiz djanga.http.odgovor uvoz HttpResponse
# Uvoz modula prikaza
iz djanga.prečaci uvoz render
# Uvezi obrazac proizvoda
iz dbappa.obrasci uvoz ProductForm
# Definirajte funkciju za dodavanje unosa proizvoda
def AddProduct (zahtjev):
ako zahtjev.metoda == "OBJAVI":
form = ProductForm (zahtjev.OBJAVI)
# Ako su podaci obrasca valjani ili ne
ako oblik.is_valid ():
probati:
# Spremite podatke obrasca u bazu podataka
oblik.uštedjeti()
# Definirajte poruku za korisnika
podaci = ['
Dodan je Proizvod.
']# Vratite odgovor
vrati HttpResponse (podaci)
osim:
proći
drugo:
# Definirajte objekt oblika
obrazac = ProductForm ()
# Prikažite obrazac za prijavu proizvoda
return render (zahtjev, 'proizvod.html ', ' obrazac ': obrazac)
Izmijenite url adrese.py datoteka sa sljedećom skriptom za definiranje puta za pozivanje funkcije prikaza.
url adrese.py
# Uvoz administrativnog modulaiz djanga.doprinos uvoz admin
# Uvoz modula puta
iz djanga.put uvoza URL-ova
# Uvoz pogleda
iz prikaza uvoza dbapp
# Definirajte put za kupca i administratora
urlpatterns = [
put (", prikazi.AddProduct),
put ('admin /', admin.web mjesto.URL-ovi)
]
Sada pokrenite Django poslužitelj i otvorite osnovni URL u pregledniku.
http: // localhist: 8000 /
Pojavit će se sljedeći obrazac.
Sljedeće Pogreška vrijednosti pojavit će se ako korisnik pošalje obrazac bez dodavanja podataka u obrazac. Evo, cijena polje je cijeli broj koji ne može biti prazan niz.
Ako korisnik unese valjane podatke poput donjeg obrasca i pritisne Uštedjeti gumb, novi će se zapis proizvoda umetnuti u bazu podataka.
Sljedeća će se slika pojaviti ako otvorite novo umetnuti zapis s nadzorne ploče Django.
Zaključak:
Model je dizajniran pomoću null i default atributa u ovom vodiču. Dalje, ovdje su prikazani načini umetanja podataka u ta polja u pozadini i prednjoj strani kako bi čitatelju pomogli da zna upotrebu zadanih i null atributa u Django bazi podataka.