Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską.

Bez dynamicznego routingu nawigacja po stronach internetowych byłaby trudna. Musiałbyś wpisać pełną ścieżkę do każdej strony, którą odwiedzasz w przeglądarce. Co za okropne wrażenia użytkownika.

Dynamiczne jednolite lokalizatory zasobów (adresy URL) umożliwiają nawigację do różnych stron w aplikacji za pomocą kliknięcia przycisku. Django ułatwia projektowanie dynamicznych adresów URL. Posiada moduł konfiguracji adresów URL (URLconf), który łączy wyrażenia URL z widokami.

Cały kod w URLconf jest w składni Pythona, co ułatwia tworzenie dynamicznych adresów URL. Dowiedzmy się więcej o dynamicznych adresach URL, budując projekt Django.

1. Utwórz projekt Django

Pierwszy, stworzyć projekt Django i aplikacja (aplikacja).

Nazwij swoją aplikację Zegarek Boma. Aplikacja będzie zbierać lokalizację, opis i numery mieszkańców z różnych dzielnic. Utwórz model o nazwie

Sąsiedztwo. Użyj modelu, aby dodać informacje o dzielnicach do bazy danych. Nauczyć się jak tworzyć modele w Django i bazy danych, jeśli nie jesteś zaznajomiony.

Następnie utwórz funkcję widoku dla otoczenia.

2. Utwórz funkcję widoku

W Django widoki są funkcjami Pythona, które przyjmują żądania HTTP i zwracają odpowiedzi. Na stronie internetowej obsługiwanej przez Django widoki wykonują różne zadania i misje.

Aby wykonać widok, musisz wywołać go za pomocą adresu URL. Adres URL to unikalna ścieżka do zasobu w Internecie. Zasobem może być strona HTML, obraz lub punkt końcowy interfejsu API.

Utwórz adres URL, który pobiera dane o sąsiedztwie na podstawie przekazanych parametrów. Aby to zrobić, możesz użyć tzw klucz podstawowy (pk) Lub Identyfikacja (identyfikator) aby odzyskać informacje. W tym celu użyjesz jednego szablonu.

Widoki można tworzyć definiując je w pliku o nazwie wyświetlenia.py w folderze aplikacji. Zacznij od zaimportowania pliku renderowanie funkcja z Django do wyświetlania danych pod adresem URL. Importuj również Sąsiedztwo wzór z modele.py.

z django.skróty import renderowanie
z .modele import Sąsiedztwo

Następnie utwórz funkcję widoku o nazwie dom który wyświetla wszystkie sąsiedztwa na szablonie domu. The NeighborHood.objects.all() funkcja pobiera dane dla wszystkich dzielnic z bazy danych.

pokdom(wniosek):
sąsiedztwo = NeighbourHood.objects.all()
zwróć renderowanie (żądanie, "strona główna.html", {'dzielnice':dzielnice})

Utwórz także funkcję widoku dla dołączyć_hood który wyświetli informacje o okolicy. The NeighbourHood.objects.get (id=id) funkcja żąda danych zgodnie z identyfikatorem. Informacje są następnie renderowane na szablonie.

pokdołączyć_hood(żądanie ID):
sąsiedztwo = NeighbourHood.objects.get (id=id)
zwróć renderowanie (żądanie, 'dołącz_kaptur.html', {'sąsiedztwo':sąsiedztwo})

Później, gdy przejdziesz do dzielnicy, będziesz mógł zobaczyć jej informacje profilowe.

3. Utwórz dynamiczny adres URL

Możesz teraz utworzyć dynamiczny adres URL dla utworzonej funkcji widoku.

z django.adresy URL import ścieżka
z. import wyświetlenia
z django.conf import ustawienia
z django.conf.urls.static importstatyczny
zDjango.wkładpliki statyczne.adresy URLimportstaticfiles_urlpatterns

wzorce adresów URL = [
ścieżka ('dom', widoki.dom, nazwa='dom'),
ścieżka ('dołącz_kaptur/<str: id>/', widoki.join_hood, nazwa='dołączyć_hood'),
]

Jeśliustawienia.ODPLUSKWIĆ:
wzorce adresów URL += statyczny(ustawienia. MEDIA_URL, katalog_główny_dokumentu = ustawienia. MEDIA_ROOT)

Import ścieżka z adresów URL Django, aby utworzyć ścieżki dla widoku. Następnie zaimportuj funkcje widoku z wyświetlenia.py.

The dołączyć_hood Adres URL ma symbol zastępczy w nawiasach ostrych:. Spowoduje to przechwycenie tej części adresu URL i przesłanie jej do widoku.

Nawiasy kątowe zwykle zawierają specyfikację konwertera. Specyfikacja może być łańcuchem znaków (str) lub liczbą całkowitą (int). Django oferuje również ślimak, ścieżka, Lub uniwersalnie unikalne identyfikatory (uid). Specyfikacja ogranicza typ zmiennej lub liczbę znaków przekazywanych w adresie URL do widoku.

Nadanie nazw adresom URL pomoże zidentyfikować je w szablonach.

The statyczny I pliki statyczne import wyświetla statyczne pliki w ścieżkach URL. Dowiedz się więcej o tym, jak uporządkować parametry adresu URL w pliku Official Django dokumentacja.

4. Dodaj adres URL do szablonu

Po dodaniu funkcji widoku do adresu URL utwórz szablon HTML do wyświetlania danych. Nazywasz szablon dołącz_kaptur.html.

{% rozciąga się "baza.html" %}

{% obciążenie statyczny %}

{% zablokuj zawartość %}
<klasa div="karta mb-3" styl="maksymalna szerokość: dopasuj zawartość;">
<klasa div="rząd g-0">
<klasa div="kol-md-4">
<klasa div="kol-md-8">
<klasa div="treść karty">
<klasa h5="tytuł karty"> Powitanie!</h5>
<klasa p="tekst karty pt-4"> Nazwa: {{neighbourhood.name}}</P>
<klasa p="tekst karty pt-4"> Lokalizacja: {{neighbourhood.location}}</P>
<klasa p="tekst karty pt-4"> Opis: {{neighbourhood.description}}</P>
<klasa p="tekst karty pt-4"> Zdrowie Tel:{{neighbourhood.health_tell}}</P>
<klasa p="tekst karty pt-4"> Numer policyjny: {{neighbourhood.police_number}}</P>
<klasa p="tekst karty pt-4"> Mieszkańcy: {{sąsiedztwo. Liczyć}}</P>
</div>
</div>
</div>
</div>
</div>
{% blok końcowy %}

Utwórz dołączyć_hood szablon w folderze aplikacji, aby wyświetlić dane okolicy. Najpierw rozszerz baza.html szablon z arkuszami stylów (bootstrap), których użyjesz do stylizowania szablonu. Następnie wyrenderuj zmienne, które będą wyświetlać informacje na stronie.

Następnie utwórz plik strona główna.html szablon, w którym wyświetlą się wszystkie dzielnice.

{% rozciąga się 'baza.html' %}

{% obciążenie statyczny %}

{% zablokuj zawartość %}
<klasa div="pojemnik" styl="czarny kolor;">
<źródło img="{{neighborhood.hood_logo.url}}" klasa="card-img-top" alt="{{user.neighborhood.name}}">

<klasa div="wiersz">
{% dla sąsiedztwa w sąsiedztwach %}
<klasa div="kol-md-4">
<klasa div="karta mb-4" styl="minimalna wysokość: 340 pikseli">
<źródło img="{{neighborhood.hood_logo.url}}" klasa="card-img-top" alt="{{user.hood.name}}">

<klasa div="treść karty">
<klasa h5="tytuł karty">
{{neighborhood.name}}
({{sąsiedztwo.lokalizacja}})
<klasa rozpiętości ="ml-4">{{sąsiedztwo. Liczba}} członek{{neighborhood.members.count|pluralize}}</span>
</h5>

<klasa p="tekst karty">{{neighborhood.description}}</P>
<klasa p="tekst karty">{{neighbourhood.member. Liczyć}}</P>

<href="{% adresu URL 'dołączyć_hood' sąsiedztwo.id %}" klasa="btn btn-podstawowy btn-sm">Dołącz do Hooda</A>
</div>
</div>
</div>
</div>
</div>
{% blok końcowy %}

Na stronie głównej wyrenderuj wszystkie informacje o dzielnicach, które chcesz wyświetlić. Dodasz przycisk i tag kotwicy na stronie głównej. Znacznik zakotwiczenia zawiera adres URL nazwa I identyfikator sąsiedztwa.

Po kliknięciu przycisk przechodzi do sąsiedztwa tego identyfikatora. Szablon strony głównej pojawi się pod adresem URL http://127.0.0.1:8000/home/. Poniższy obrazek przedstawia tę stronę:

5. Przetestuj routing dynamiczny

Teraz możesz sprawdzić, czy routing dynamiczny działa na szablonie. Kiedy klikniesz Dołącz do kaptura przycisk, Nawiguje do dołączyć_hood szablon. The dołączyć_hood szablon wyświetla informacje profilowe dotyczące wybranej okolicy.

Zobaczysz także identyfikator dzielnicy wyświetlany w adresie URL przeglądarki http://127.0.0.1:8000/join_hood/2/

Pojawi się, jak pokazano poniżej:

Gratulacje! Utworzyłeś dynamiczny adres URL.

Dlaczego warto używać adresów URL Django?

Dynamiczne adresy URL są ważną funkcją aplikacji internetowych. Django ułatwia projektowanie adresów URL zgodnie z Twoimi potrzebami. Usuwa ograniczenia, które możesz powiązać z innymi frameworkami.

Moduł URLconf jest pełen zasobów wspierających tworzenie adresów URL w Django. Ułatwia również udostępnianie plików statycznych na szablonach i poprawia obsługę błędów.

Django ma inne funkcje zaprojektowane w celu optymalizacji aplikacji zaplecza. Automatyzuje między innymi uwierzytelnianie użytkowników, administrowanie treścią i mapy witryn.