Esercizio - Creare viste
Si vuole aggiornare l'applicazione per offrire un elenco di canili. Si vuole anche che l'applicazione consenta a un utente di fare clic o toccare un singolo canile per visualizzare i dettagli. A tale scopo, verranno create due viste e verranno quindi registrati i percorsi appropriati.
Creare viste
In Visual Studio Code aprire dog_shelters/views.py.
Alla fine della riga
from django.shortcuts import render
aggiungere, get_object_or_404
. La riga dovrebbe essere ora analoga alla seguente:from django.shortcuts import render, get_object_or_404
Sotto la riga
from django.shortcuts import render
aggiungere il codice Python seguente per importare i modelli:from . import models
Alla fine di views.py aggiungere il codice seguente per caricare tutti i canili, creare il contesto di ambiente per il modello, quindi eseguire il rendering del modello per l'utente. Questa diventerà la vista elenco per i canili e la pagina predefinita per il sito.
def shelter_list(request): shelters = models.Shelter.objects.all() context = {'shelters': shelters} return render(request, 'shelter_list.html', context)
Alla fine di views.py aggiungere il codice seguente per caricare un canile specifico in base al rispettivo valore
pk
o chiave primaria, creare il contesto di ambiente per il modello, quindi eseguire il rendering del modello per l'utente. Questa diventerà la pagina dei dettagli per un canile.def shelter_detail(request, pk): shelter = get_object_or_404(models.Shelter, pk=pk) context = {'shelter': shelter} return render(request, 'shelter_detail.html', context)
Creare URLconf
Per rendere richiamabili le viste, sarà necessario registrare i percorsi appropriati.
Creare un nuovo file in dog_shelters, denominato urls.py.
Aggiungere il codice seguente per registrare i percorsi per le due viste create:
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 ]
Si noti che è stato creato un percorso predefinito (''
) per fare riferimento alla vista shelter_list
. È stata eseguita anche la registrazione di shelter/<int:pk>
per fare riferimento alla vista shelter_detail
. Come evidenziato in precedenza, pk
verrà passato come parametro pk
a shelter_detail
.
Registrare URLconf con il progetto
Django usa un file urls.py di base come URLconf. È quindi necessario assicurarsi che il file creato sia registrato correttamente.
Aprire project/urls.py.
Verso la fine del file individuare la riga 17:
from django.urls import path
Alla fine della riga aggiungere
, include
. La nuova riga 17 dovrebbe ora essere analoga alla seguente:from django.urls import path, include
Sotto la riga
TODO: Register URLconf
aggiungere il codice seguente:# TODO: Register URLconf path('', include('dog_shelters.urls')),
Importante
La virgola finale è obbligatoria.
Salvare tutti i file selezionando File>Salva tutto.