Django - Napredni obrasci

Sadržaj
Izrada obrazaca može se znatno olakšati korištenjem opće klase od Django međutim, nećemo ih uvijek koristiti jer ponekad moramo s naše strane razviti potpunu logiku.
Srećom iznutra Django Također možemo stvoriti način na koji ćemo obrađivati ​​naše obrasce i kako upravljati njihovom logikom, time ćemo postići mnogo prilagođenije aplikacije i približiti se našim ciljevima.
Spajanje podataka u obrazac
Znamo da je obrazac način preuzimanja podataka od korisnika, stoga imamo dva stanja, s podacima i bez podatakaKad obrazac ima podatke, to je kada ćemo obavljati svoje operacije, s druge strane, kada nema ništa, moramo ga jednostavno zanemariti za obradu podataka.
VježbajteIzvršit ćemo sljedeću vježbu, s interaktivne konzole datoteke Django, stvorit ćemo obrazac i sa is_bound () metoda Provjerit ćemo ima li povezane podatke, na ovaj način možemo vidjeti malo više kako se obrazac ponaša u okviru, pogledajmo rezultate na donjoj slici:

Kao što vidimo u primjeru, samo kada proslijedimo vrijednosti obliku dok koristimo metodu is_bound, dobivamo Istinski odgovor.
Potvrdite podatke
Kao što znamo, ako radimo na webu, podaci koje je unijeo korisnik mogu biti najučinkovitiji oblik napada na našu aplikaciju, to je zato što zbog neznanja može unijeti bilo koju vrstu formata koju naša aplikacija nije spremna prihvatiti i stoga može završiti fatalnom pogreškom, kako bismo to izbjegli, uvijek se moramo pobrinuti da su podaci sigurni prije nego što ih obradimo za to, možemo upotrijebiti sljedeće:
 def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Ako su podaci ovdje valjani, možemo nastaviti s logikom aplikacije : # Inače predstavljamo samo objekt bez oblika podataka = MyForm ()

Kao što vidimo u primjeru, napravimo instancu klase MyForm i pridružujemo se podacima koji dolaze u zahtjev, POST metodom i onima tog tipa DATOTEKE U slučaju da donosimo sliku ili datoteku druge vrste, ovisno o našem modelu, za to se mora procijeniti ono što naš obrazac donosi is_valid () metoda, time se osiguravamo da ako dođe niz gdje bi trebao doći broj, informacije se odbacuju i nije dopušteno doći do baze podataka gdje bi to moglo uzrokovati fatalnu pogrešku.
Pogledi zasnovani na klasi
S onim što smo vidjeli u prethodnom primjeru sada možemo vidjeti kako možemo primijeniti nešto slično koristeći Pogledi zasnovani na klasi te na taj način koristiti alate okvira.
Ako koristimo FormView općenito od Django možemo postići nešto slično sljedećem kodu:
 iz Django.shortcuts uvozi render, preusmjerava iz Django.views.generic.edit uvozi FormView klasu MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = ' / success /' def form_valid (self, form): form .save () return super (MyView, self) .form_valid (form)

Kao što vidimo, napredna upotreba obrazaca omogućuje nam da aplikacije učinimo dinamičnijima i prilagođenijima, pomoću kojih možemo postići nevjerojatne rezultate sa samo nekoliko redaka koda.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave