Übung: Erstellen von Ansichten

Abgeschlossen

Wir möchten unsere Anwendung aktualisieren, um eine Liste von Hundetierheimen bereitzustellen. Außerdem soll die Anwendung es ermöglichen, dass jemand auf ein einzelnes Tierheim klicken oder tippen kann, um die Details anzuzeigen. Hierfür werden zwei Ansichten erstellt und dann die entsprechenden Pfade registriert.

Erstellen von Ansichten

  1. Öffnen Sie in Visual Studio Code dog_shelters/views.py.

  2. Fügen Sie am Ende der Zeile, in der from django.shortcuts import render steht, , get_object_or_404 ein. Die Zeile sollte nun lauten:

    from django.shortcuts import render, get_object_or_404
    
  3. Fügen Sie unterhalb der Zeile from django.shortcuts import render den folgenden Python-Code ein, um Ihre Modelle zu importieren:

    from . import models
    
  4. Fügen Sie am Ende von views.py den folgenden Code ein, um alle Tierheime zu laden, das Kontextobjekt für die Vorlage zu erstellen und dann die Vorlage für den Benutzer zu rendern. Dies wird unsere Listenansicht für Tierheime und die Standardseite für unsere Website.

    def shelter_list(request):
        shelters = models.Shelter.objects.all()
        context = {'shelters': shelters}
        return render(request, 'shelter_list.html', context)
    
  5. Fügen Sie am Ende von views.py den folgenden Code hinzu, um ein bestimmtes Tierheim anhand seines pk oder Primärschlüssels zu laden, das Kontextobjekt für die Vorlage zu erstellen und dann die Vorlage für den Benutzer zu rendern. Dies wird zur Detailseite für ein Tierheim.

    def shelter_detail(request, pk):
        shelter = get_object_or_404(models.Shelter, pk=pk)
        context = {'shelter': shelter}
        return render(request, 'shelter_detail.html', context)
    

Erstellen der URLconf

Damit unsere Ansichten aufgerufen werden können, müssen wir die entsprechenden Pfade registrieren.

  1. Erstellen Sie eine neue Datei mit dem Namen urls.py in dog_shelters.

  2. Fügen Sie den folgenden Code hinzu, um die Pfade für die beiden von uns erstellten Ansichten zu registrieren:

    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
    ]
    

Beachten Sie, dass wir einen Standardpfad ('') erstellt haben, um auf unsere shelter_list-Ansicht zu verweisen. Wir haben auch shelter/<int:pk> registriert, um auf unsere shelter_detail-Ansicht zu verweisen. Wie bereits gesagt, wird pk als pk-Parameter an shelter_detail übergeben.

Registrieren von URLconf bei unserem Projekt

Django verwendet eine Kerndatei urls.py als URLconf. Daher müssen wir sicherstellen, dass die von uns erstellte Datei ordnungsgemäß registriert ist.

  1. Öffnen Sie project/urls.py.

  2. Suchen Sie am Ende der Datei nach Zeile 17 mit dem folgenden Code:

    from django.urls import path
    

    Fügen Sie am Ende der Zeile , include hinzu. Die neue Zeile 17 sollte nun wie folgt lauten:

    from django.urls import path, include
    
  3. Fügen Sie den folgenden Code unter der Zeile TODO: Register URLconf hinzu:

    # TODO: Register URLconf
    path('', include('dog_shelters.urls')),
    

    Wichtig

    Das nachstehende Komma ist erforderlich.

  4. Speichern Sie alle Dateien, indem Sie Datei>Alle speichern auswählen.