Django

Upotreba zadane vrijednosti NULL u Django modelu

Upotreba zadane vrijednosti NULL u Django modelu
Model je jedan od značajnih dijelova aplikacije Django koja se temelji na bazi podataka. Model definira strukturu baze podataka. Tip podataka tablice baze podataka i način umetanja podataka na temelju različitih atributa opisani su u modelu. Provjerom valjanosti podataka također se može upravljati pomoću modela. Svaka tablica u bazi sadrži određeni broj polja ili stupaca. Model definira vrstu svakog polja tablice. Zadani atribut koristi se u modelu za postavljanje zadane vrijednosti za određeno područje ako korisnik za to polje ne unese podatke. Zadana vrijednost polja može biti prazan ili bilo koja određena vrijednost. The null i prazan vrijednosti nisu iste. null koristi se za definiranje da je prazna vrijednost dopuštena ili ne za određeno polje. Ako je null postavljeno je na Lažno, tada prazan niz neće biti dopušten u polju s cijelim brojem, ali prazni niz može se dodijeliti u polju s nizom. Ako je null postavljeno je na Pravi, tada će se u cjelobrojnom polju umjesto praznog niza dati vrijednost NULL. blank se koristi uglavnom za provjeru valjanosti obrasca i ne provjerava tip podataka polja. Način korištenja zadano i null atributi u Django modelu prikazani su u ovom vodiču.

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 podatakaapp

B. 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 stvarauporabitelja

C. 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 modula
iz 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 modula
iz 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 obrazaca
iz 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



% csrf_token%
obrazac.kao_p

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 HttpResponse
iz 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 modula
iz 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.

Top 5 ergonomskih proizvoda za računalni miš za Linux
Uzrokuje li dugotrajno korištenje računala bolove u zapešću ili prstima? Patite li od ukočenih zglobova i stalno se morate rukovati? Osjećate li goruć...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...