Django - rozpoznawanie widoków i adresów URL

{title}

Widoki i adresy URL nie są wywoływane bezpośrednio przez nasz kod, jest to spowodowane dynamicznym charakterem aplikacji, ponieważ im bardziej ogólna forma, można go używać w wielu innych przypadkach.
Następnie poprawnym sposobem jest użycie różnych funkcji, które pozwalają nam rozwiązać trasy albo z widoku do adresu URL, albo z adresu URL do widoku, do tego mamy kilka narzędzi zwanych dekoratorami .
Rozwiązywanie z adresu URL do wyświetleń
Widoki, zgodnie z najlepszymi praktykami, nie są wywoływane bezpośrednio przez nasz kod, ale są wywoływane przez wywołania w adresie URL, połączenia te są przetwarzane i obsługiwane przez system dyspozytora Django .
Jednym z kluczowych aspektów w tym momencie jest to, że Django używa wyrażeń regularnych do wykonania konstrukcji adresu URL, który wywoła nasz widok, dzięki temu możemy przekazać różne parametry, a tym samym dodać funkcje do naszych widoków.
Wzorzec URL zawiera następujące aspekty:

  • Wyrażenie regularne, które pozwala nam przechwycić adres URL, który umieściliśmy jako wzorzec.
  • Odwołanie do widoku, który zostanie wywołany.
  • Słownik argumentów, które będą przekazywane przy każdym wywołaniu widoku.
  • Nazwa, która będzie używana jako odniesienie, aby móc wykonywać odwrotne wywołania widoku.
Rozwiązywanie widoków adresów URL
W naszych aplikacjach często musimy wywoływać inne widoki lub zasoby za pomocą adresów URL, ale sztywne kopiowanie lub kodowanie tych adresów URL nie jest dobrą praktyką, ponieważ jeśli na przykład nastąpi zmiana w naszym programie, wyobraźmy sobie, że musimy zmień 20 lub 30 odniesień do adresu URL, w tym celu możemy użyć różnych metod, aby nasza aplikacja przeszukała adres URL bez konieczności jego kopiowania, jedną z tych metod jest użycie dekoratora Permalink, który zobaczymy w następnym punkcie.
Dekorator Permalink
W ramach każdego modelu mamy dostęp do metody get_absolute_url (), która pozwala nam na bezpośredni dostęp do strony szczegółów obiektu bez konieczności wiedzieć, jak należy zbudować adres URL, jednak ta metoda nie pozwala nam przekazywać argumentów, ponieważ jest to po prostu link zwrócony.
W celu rozszerzenia funkcjonalności mamy możliwość używania i zwracania parametrów tak, jakby były z metody get_absolute_url ().
Aby to zrobić, musisz postępować zgodnie z następującą strukturą:
  • Pierwszą wartością jest nazwa wywoływanego widoku, jeśli widok ma nazwę, należy go użyć, w przeciwnym razie możemy użyć ścieżki importu widoku. Ta wartość jest zawsze wymagana.
  • Druga wartość to krotka argumentów pozycyjnych, które powinny zostać zastosowane do widoku, w przypadku braku tej opcji możemy pozostawić ten parametr pusty.
  • Trzecia wartość to słownik łączący argumenty z ich odpowiednimi wartościami, wartości te muszą zostać przekazane do widoku, w przypadku gdy widok nie otrzyma nic, możemy wykluczyć tę wartość z wywołania.
Zobaczmy poniżej, jak tłumaczymy to na kod w Django, w tym uwzględnimy użycie dekoratora w modelu:

{title}


Jak widzimy w kodzie obrazu, wywołujemy widok szczegółów biblioteki_artykuł, druga wartość jest pusta, ponieważ nie jest to konieczne, a w trzeciej wartości wskazujemy, że identyfikator_obiektu musi być dołączony do self.id, to znaczy do samego identyfikatora model, a następnie w ostatniej linii używamy dekoratora .

  • 0