Преглед садржаја
Израда образаца може се знатно олакшати коришћењем генеричке класе оф Дјанго међутим, нећемо их увек користити јер понекад морамо развити комплетну логику са наше стране.На срећу изнутра Дјанго Такође можемо створити начин на који ћемо обрађивати наше обрасце и како управљати њиховом логиком, тиме ћемо постићи много персонализованије апликације и приближити се нашим циљевима.
Спајање података у образац
Знамо да је образац начин преузимања података од корисника, стога имамо два стања, са подацима и без податакаКада образац садржи податке, то је када ћемо радити наше операције, с друге стране, када нема ништа, морамо га једноставно занемарити за обраду података.
ВежбајтеИзвршићемо следећу вежбу, са интерактивне конзоле Дјанго, ми ћемо створити образац и са ис_боунд () метод Потврдићемо да ли има повезане податке, на овај начин можемо видети мало више како се образац понаша у оквиру, да видимо резултате на слици испод:
Као што видимо у примеру, само када проследимо вредности облику док користимо методу ис_боунд, добијамо Истински одговор.
Потврдите податке
Као што знамо, ако радимо на вебу, подаци које је унео корисник могу бити најефикаснији облик напада на нашу апликацију, то је зато што због незнања може да унесе било коју врсту формата коју наша апликација није спремна да прихвати и стога може завршити фаталном грешком, како бисмо то избјегли, увијек се морамо побринути да су подаци сигурни прије него што их обрадимо за то, можемо користити сљедеће:
деф ми_виев (рекуест): иф рекуест.метход == 'ПОСТ': форм = МиФорм (рекуест.ПОСТ, рекуест.ФИЛЕС) иф форм.ис_валид (): #Ако су подаци овде важећи, можемо наставити са логиком апликације : # Иначе представљамо само објекат без облика података = МиФорм ()
Као што видимо у примеру, правимо инстанцу класе МиФорм и придружујемо се подацима који долазе у захтев, методом ПОСТ и онима тог типа ФАЈЛОВИ У случају да доносимо слику или датотеку друге врсте, у зависности од нашег модела, оно што наш образац доноси морамо за то процијенити, користимо ис_валид () метода, овим се постарамо да ако низ дође тамо гдје би требао доћи број, информације се одбацују и није допуштено доћи до базе података гдје би то могло узроковати фаталну грешку.
Погледи засновани на класи
Са оним што смо видели у претходном примеру, сада можемо видети како можемо применити нешто слично користећи Погледи засновани на класи и на овај начин користе оквирне алате.
Ако користимо ФормВиев генериц оф Дјанго можемо постићи нешто слично следећем коду:
из Дјанго.схортцутс увози рендер, преусмерава са Дјанго.виевс.генериц.едит увози ФормВиев класу МиФорм (ФормВиев): форм_цласс = МиФорм темплате_наме = 'форм.хтмл' суццесс_урл = ' / суццесс /' деф форм_валид (селф, форм): форм .саве () ретурн супер (МиВиев, селф) .форм_валид (форм)
Као што видимо, напредна употреба образаца омогућава нам да апликације учинимо динамичнијима и на персонализованији начин, помоћу којих можемо постићи невероватне резултате са само неколико редова кода.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен