Django - Zaawansowane formularze

Spisie treści
Tworzenie formularzy można znacznie uprościć, korzystając z klasy generyczne z Django jednak nie zawsze będziemy z nich korzystać, ponieważ czasami musimy opracować kompletną logikę z naszej strony.
Na szczęście w zasięgu Django Możemy również stworzyć sposób, w jaki będziemy przetwarzać nasze formularze i jak zarządzać ich logiką, dzięki czemu osiągniemy znacznie bardziej spersonalizowane aplikacje i bliższe naszym celom.
Dołączanie danych do formularza
Wiemy, że formularz jest sposobem na pobranie danych od użytkownika, dlatego mamy dwa jego stany, z danymi i bez danychGdy formularz zawiera dane, to wtedy, gdy zamierzamy wykonać swoje operacje, z drugiej strony, gdy nie ma nic, musimy go po prostu zignorować do przetwarzania danych.
ĆwiczeniaPrzeprowadzimy następujące ćwiczenie z interaktywnej konsoli programu Django, stworzymy formularz i za pomocą is_bound () metoda Sprawdzimy, czy ma skojarzone dane, w ten sposób możemy zobaczyć trochę więcej, jak zachowuje się formularz w ramach frameworka, zobaczmy wyniki na obrazku poniżej:

Jak widać na przykładzie, dopiero gdy przekażemy wartości do formularza przy użyciu metody is_bound otrzymujemy Prawdziwa odpowiedź.
Sprawdź poprawność danych
Jak wiemy, jeśli pracujemy w sieci, dane wprowadzane przez użytkownika mogą być najskuteczniejszą formą ataku na naszą aplikację, a to dlatego, że z powodu niewiedzy może wprowadzać wszelkiego rodzaju formaty, których nasza aplikacja nie jest gotowa zaakceptować i dlatego może zakończyć się krytycznym błędem, aby tego uniknąć, zawsze musimy upewnić się, że dane są bezpieczne przed ich przetworzeniem, w tym celu możemy użyć:
 def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Jeśli dane są tutaj poprawne, możemy kontynuować naszą logikę aplikacji w przeciwnym razie : # W przeciwnym razie przedstawiamy tylko obiekt bez formularza danych = MyForm()

Jak widać na przykładzie tworzymy instancję klasy Mój formularz i dołączamy do danych, które przychodzą w żądanie, metodą POST i typu AKTA W przypadku, gdy wnosimy obraz lub plik innego typu, w zależności od naszego modelu, to, co przynosi nasz formularz, należy ocenić w tym celu korzystamy z is_valid() metoda, dzięki temu upewniamy się, że jeśli ciąg pojawi się w miejscu, w którym powinna pojawić się liczba, informacja zostanie odrzucona i nie będzie mogła dotrzeć do bazy danych, gdzie mogłaby spowodować błąd krytyczny.
Widoki oparte na klasach
Dzięki temu, co widzieliśmy w poprzednim przykładzie, możemy teraz zobaczyć, jak możemy zastosować coś podobnego za pomocą Widoki oparte na klasach iw ten sposób korzystać z narzędzi ramowych.
Jeśli użyjemy Widok formularza rodzajowy z Django możemy osiągnąć coś podobnego do poniższego kodu:
 z Django.shortcuts import render, przekierowanie z Django.views.generic.edit import FormView class 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 (formularz)

Jak widać, zaawansowane wykorzystanie formularzy pozwala nam uczynić aplikacje bardziej dynamicznymi i bardziej spersonalizowanymi, dzięki czemu możemy osiągnąć niesamowite rezultaty za pomocą zaledwie kilku linijek kodu.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave