Walidacja formularza w Django

Walidacja formularza w Django

Walidacja formularza jest bardzo ważnym zadaniem dla każdej aplikacji internetowej do wprowadzenia prawidłowych danych w bazie danych. Użytkownicy aplikacji nie będą w stanie wstawić nieprawidłowych danych, jeśli dane z formularza zostaną sprawdzone przed przesłaniem. Django nazywa się frameworkiem opartym na MVT (szablon widoku modelu), w którym zadanie kontrolera jest wykonywane przez samą framework. Zadania związane z bazą danych są wykonywane według modelu, a dane są prezentowane do szablonu za pomocą widoku. Pola formularza są generowane na podstawie konkretnego modelu, który wprowadzi dane do bazy danych Django po sprawdzeniu sprawdzania poprawności. Jeden rodzaj walidacji jest wykonywany przez przeglądarkę opartą na typie pola, który jest zdefiniowany w modelu. Używając jest ważna() Funkcja to kolejny sposób sprawdzenia danych formularza, niezależnie od tego, czy są one prawidłowe, czy nie po przesłaniu formularza. Ten samouczek pokaże, w jaki sposób dane można wstawić do bazy danych Django po weryfikacji formularza.

Wymagania wstępne

Przed ćwiczeniem scenariusza tego samouczka musisz wykonać następujące zadania:

  1. Zainstaluj wersję Django 3+ na Ubuntu 20+ (najlepiej)
  2. Utwórz projekt Django
  3. Uruchom serwer Django, aby sprawdzić, czy serwer działa poprawnie lub nie.

Skonfiguruj aplikację Django

1. Uruchom następujące polecenie, aby utworzyć aplikację Django o nazwie ValidationApp.

$ Python3 Zarządzaj.PY startApp ValidationApp

2. Uruchom następujące polecenie, aby utworzyć użytkownika używanego do dostępu do bazy danych Django. Jeśli wcześniej utworzyłeś użytkownika, nie musisz uruchamiać polecenia.

$ Python3 Zarządzaj.PY CreateSuperuser

3. Dodaj nazwę aplikacji w Zainstalowany_app część py plik.

Instalowane_apps = [

„ValidationApp”
]

4. Utwórz folder o nazwie szablony w środku ValidationApp folder i ustaw szablon Lokalizacja aplikacji w Szablony część py plik.

Szablony = [

… .
„Dirs”: ['/home/fahmida/django_pro/validationApp/szablony']],
… .
,
]

Walidacja formularza Django

Musisz napisać kod następujących plików, aby sprawdzić zadanie sprawdzania poprawności formularza w Django.

  • modele.py
  • Admin.py
  • wyświetlenia.py
  • form.py
  • klient.html

Utwórz model

Otworzyć modele.py plik z folderu aplikacji i dodaj następujący skrypt, aby utworzyć strukturę klienci tabela. Tabela będzie zawierać cztery pola. To są nazwa Full_name, e -mail, contact_no i customer_type. Tutaj Customer_Type jest tworzony według typu wyboru. Oznacza to, że użytkownik musi wybrać dowolną wartość z listy rozwijanej.

modele.py

# Modele importu
z Django.Modele importu DB
# Zdefiniuj klasę dla wpisu klienta
Klasy klient (modele.Model):
# Zdefiniuj wartości dla typu klienta
typ = (
(„płatne”, „płatne”),
('Bezpłatny')
)
# Zdefiniuj pola dla tabeli klientów
Full_name = modele.Charfield (max_length = 50)
e -mail = modele.E -mail ()
contact_no = modele.Charfield (max_length = 20)
Customer_Type = Modele.Charfield (max_length = 32, wybory = typ, domyślnie = „free”)

Zarejestruj model

Dodaj następujący skrypt Administrator.py plik do rejestracji Klient model w bazie danych Django, aby uzyskać dostęp do klienci Tabela z pulpitu administracyjnego Django.

Admin.py

# Importuj moduł administratora
z Django.Administrator importu
# Importuj model klienta
z .modele importuj klienta
# Zarejestruj model klienta
Admin.strona.Zarejestruj się (klient)

Tworzyć form.py wewnątrz folderu aplikacji i dodaj następujący skrypt, aby zdefiniować klasę, aby utworzyć formularz na podstawie wymienionych pola klient Model.

form.py

# Importuj moduł formularzy
z formularzy importu Django
# Importuj model klienta
z ValidationApp.modele importuj klienta
# Zdefiniuj klasę dla formularza klienta
Klasy ClientForm (formularze.Modelform):
Meta klasy:
model = klient
fields = („Full_name”, „e -mail”, „contact_no”, „customer_type”)

Utwórz szablon

Utwórz plik HTML o nazwie klient.html z następującym skryptem, aby wyświetlić wcześniej zaprojektowany formularz z Ratować przycisk.

klient.html





Formularz rejestracji użytkownika


Formularz wejścia klienta


% csrf_token %
formularz.as_p



Wstaw dane po sprawdzaniu poprawności formularza

Zmodyfikuj zawartość wyświetlenia.py Plik z następującym skryptem. AddCustomer () funkcja jest używana w skrypcie do wstawienia nowego rekordu w klienci Tabela po weryfikacji formularza. Jeśli formularz nie zostanie przesłany, formularz zostanie załadowany za pomocą klient.html plik. Jeśli formularz zostanie przesłany z prawidłowymi danymi, nowy rekord zostanie wstawiony za pomocą ratować() Funkcja i komunikat sukcesu zostaną wydrukowane w przeglądarce z opcją dodania kolejnego rekordu.

wyświetlenia.py

# Importuj moduł httpresponse
z Django.http.Odpowiedź Import Httpresponse
# Importuj moduł renderowania
z Django.KRÓTKI IMPORTOWANE RENDER
# Importuj CustomerForm
z ValidationApp.Formularze importują program klientów
# Zdefiniuj funkcję, aby dodać wpis klienta
def AddCustomer (żądanie):
na żądanie.Method == „Post”:
FORM = Customerform (żądanie.POST)
# Jeśli dane z formularza są prawidłowe, czy nie
Jeśli forma.jest ważna():
próbować:
# Zapisz dane formularza w bazie danych
formularz.ratować()
# Zdefiniuj wiadomość dla użytkownika
data = ['

Dane klienta zostały poprawnie wstawione.


Dodaj inny']
# Zwróć odpowiedź
zwróć HttPesponse (dane)
z wyjątkiem:
przechodzić
w przeciwnym razie:
# Zdefiniuj obiekt formularza
FORM = CustomerForm ()
# Pokaż formularz wpisu klienta
Return Render (żądanie, „Klient.html ', „form”: form)

Zmodyfikuj URL.py plik projektu Django z następującym skryptem. W skrypcie zdefiniowano dwie ścieżki. 'klient/' Ścieżka zostanie użyta do wyświetlania formularza, aby dodać nowe rekordy klienta. 'Admin/' Ścieżka zostanie użyta do wyświetlania pulpitu administracyjnego Django.

URL.py

# Importuj moduł administratora
z Django.Administrator importu
# Moduł ścieżki importu
z Django.URL ścieżki importu
# Widok importu
z ValidationApp Import Views
# Zdefiniuj ścieżkę dla klienta i administratora
urlpatterns = [
ścieżka („klient/”, widoki.Addcustomer),
ścieżka („admin/”, administrator.strona.URL)
]

Uruchom serwer Django i wykonaj następujący adres URL z przeglądarki, aby wyświetlić formularz wpisu klienta. Jeśli Ratować przycisk jest naciskowy bez dodawania danych do formularza, wówczas następująca strona pojawi się z błędami w celu utrzymywania pustych pól.

Jeśli nieprawidłowe dane są ustawione dla pola e -mail, pojawi się następujący błąd.

Poniższe informacje pojawią się, jeśli formularz zostanie przesłany za pomocą prawidłowych danych. Jeśli użytkownik kliknie na 'Dodaj inny' link, formularz pojawi się ponownie, aby wstawić dane do następnego rekordu.

Wniosek

Sposób walidacji formularza Django został pokazany w tym samouczku poprzez utworzenie prostej aplikacji Django. Wspomniana aplikacja pomoże programistom Django zrozumieć znaczenie walidacji formy i będą w stanie zrobić to poprawnie.