Ćwiczenie — tworzenie widoków
Chcemy zaktualizować naszą aplikację, aby udostępnić listę schronisk dla psów. Chcemy również, aby aplikacja zezwoliła komuś na kliknięcie lub naciśnięcie pojedynczego schronienia, aby wyświetlić szczegóły. Zrobimy to, tworząc dwa widoki, a następnie rejestrując odpowiednie ścieżki.
Tworzenie widoków
W programie Visual Studio Code otwórz dog_shelters /views.py.
Na końcu wiersza, który odczytuje
from django.shortcuts import render
, dodaj, get_object_or_404
. Wiersz powinien teraz zostać odczytany:from django.shortcuts import render, get_object_or_404
Poniżej wiersza z napisem
from django.shortcuts import render
dodaj następujący kod w języku Python, aby zaimportować modele:from . import models
Na końcu views.py dodaj następujący kod, aby załadować wszystkie schroniska, utworzyć obiekt kontekstu dla szablonu, a następnie wyrenderować szablon dla użytkownika. Stanie się to naszym widokiem listy dla schronisk i strony domyślnej dla naszej witryny.
def shelter_list(request): shelters = models.Shelter.objects.all() context = {'shelters': shelters} return render(request, 'shelter_list.html', context)
Na końcu views.py dodaj następujący kod, aby załadować określone schronienie według jego
pk
klucza podstawowego, utworzyć obiekt kontekstu dla szablonu, a następnie wyrenderować szablon dla użytkownika. Stanie się to stroną szczegółów schroniska.def shelter_detail(request, pk): shelter = get_object_or_404(models.Shelter, pk=pk) context = {'shelter': shelter} return render(request, 'shelter_detail.html', context)
Tworzenie interfejsu URLconf
Aby nasze widoki można było wywoływać, musimy zarejestrować odpowiednie ścieżki.
Utwórz nowy plik w dog_shelters o nazwie urls.py.
Dodaj następujący kod, aby zarejestrować ścieżki dla dwóch utworzonych widoków:
from django.urls import path from . import views urlpatterns = [ path('', views.shelter_list, name='shelter_list'), path('shelter/<int:pk>', views.shelter_detail, name='shelter_detail'), # More patterns to come later ]
Zwróć uwagę, że utworzyliśmy domyślną ścieżkę (''
), aby wskazać nasz shelter_list
widok. Zarejestrowaliśmy się shelter/<int:pk>
również w celu odwołania się do naszego shelter_detail
widoku. Jak wyróżniono wcześniej, pk
zostanie przekazany jako pk
parametr do shelter_detail
.
Zarejestruj adres URLconf w naszym projekcie
Django używa jednego podstawowego pliku urls.py jako identyfikatora URLconf. W związku z tym musimy upewnić się, że utworzony przez nas element jest prawidłowo zarejestrowany.
Otwórz projekt/urls.py.
W dolnej części pliku znajdź wiersz 17, który odczytuje:
from django.urls import path
Na końcu wiersza dodaj element
, include
. Nowy wiersz 17 powinien teraz być następujący:from django.urls import path, include
Poniżej wiersza, który odczytuje
TODO: Register URLconf
ciąg , dodaj następujące elementy:# TODO: Register URLconf path('', include('dog_shelters.urls')),
Ważne
Wymagany jest przecinek końcowy.
Zapisz wszystkie pliki, wybierając pozycję Plik>Zapisz wszystko.