Съдържание
Изграждането на формуляри може да бъде много по -лесно с помощта на общи класове на Джанго обаче не винаги ще ги използваме, тъй като понякога трябва да развием пълната логика от наша страна.За щастие вътре Джанго Можем също така да създадем начина, по който ще обработваме нашите форми и как да управляваме тяхната логика, с това ще постигнем много по -персонализирани приложения и по -близо до нашите цели.
Присъединяване на данните към формуляра
Знаем, че формулярът е начин за вземане на данни от потребителя, затова имаме две състояния от него, с данни и без данниКогато формулярът има данни, това е, когато ще правим нашите операции, от друга страна, когато няма нищо, трябва просто да го игнорираме за обработка на данни.
УпражнениеЩе извършим следното упражнение от интерактивната конзола на Джанго, ще създадем формуляр и с is_bound () метод Ще проверим дали има свързани данни, по този начин можем да видим малко повече как се държи формуляра в рамките, нека видим резултатите на изображението по -долу:
Както виждаме в примера, само когато предаваме стойностите във формата, докато използваме метода is_bound, ние получаваме Истински отговор.
Проверете данните
Както знаем, ако работим в мрежата, въведените от потребителя данни могат да бъдат най -ефективната форма на атака срещу нашето приложение, това е така, защото поради незнание то може да въведе всякакъв вид формати, които нашето приложение не е готово да приеме и следователно може да завърши с фатална грешка, за да избегнем това, винаги трябва да се уверим, че данните са безопасни, преди да ги обработим за това, можем да използваме следното:
def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Ако данните са валидни тук, можем да продължим с нашата логика на приложението иначе : # В противен случай представяме само обекта без форма на данни = MyForm ()
Както виждаме в примера, ние правим екземпляр на класа MyForm и ние се присъединяваме към данните, които идват в заявка, по метода POST и тези от типа ФАЙЛОВЕ В случай, че донесем изображение или файл от друг тип, в зависимост от нашия модел, това, което носи нашата форма, трябва да бъде оценено за това, ние използваме is_valid () метод, с това се уверяваме, че ако низ дойде там, където трябва да дойде номер, информацията се отхвърля и не е позволено да достигне базата данни, където може да причини фатална грешка.
Изгледи, базирани на класа
С това, което видяхме в предишния пример, сега можем да видим как можем да приложим нещо подобно с помощта на Изгледи, базирани на класа и по този начин използвайте инструментите на рамката.
Ако използваме FormView родово на Джанго можем да постигнем нещо подобно на следния код:
от Django.shortcuts импортиране на рендериране, пренасочване от Django.views.generic.edit импортиране FormView клас MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = ' / success /' def form_valid (self, form): form .save () връщане на супер (MyView, self) .form_valid (форма)
Както можем да видим, усъвършенстваното използване на формуляри ни позволява да направим приложенията по -динамични и по -персонализиран, с което можем да постигнем невероятни резултати само с няколко реда код.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка