Exercício – Criar exibições
Queremos atualizar nosso aplicativo para fornecer uma lista de abrigos para cães. Também queremos que o aplicativo permita que alguém clique ou toque em um abrigo individual para ver os detalhes. Faremos isso criando duas exibições e registrando os caminhos apropriados.
Criar exibições
No Visual Studio Code, abra dog_shelters/views.py.
No final da linha que indica
from django.shortcuts import render
, adicione, get_object_or_404
. A linha agora indicará:from django.shortcuts import render, get_object_or_404
Abaixo da linha que indica
from django.shortcuts import render
, adicione o seguinte código Python para importar seus modelos:from . import models
Ao final de views.py, adicione o código a seguir para carregar todos os abrigos, crie o objeto de contexto para o modelo e renderizar o modelo para o usuário. Isso se tornará a exibição de lista de abrigos e a página padrão do site.
def shelter_list(request): shelters = models.Shelter.objects.all() context = {'shelters': shelters} return render(request, 'shelter_list.html', context)
Ao final de views.py, adicione o código a seguir para carregar um abrigo específico por
pk
ou pela chave primária, crie o objeto de contexto para o modelo e renderize o modelo para o usuário. Isso se tornará a página de detalhes de um abrigo.def shelter_detail(request, pk): shelter = get_object_or_404(models.Shelter, pk=pk) context = {'shelter': shelter} return render(request, 'shelter_detail.html', context)
Criar a URLconf
Para que as exibições possam ser chamadas, precisaremos registrar os caminhos apropriados.
Crie um arquivo em dog_shelters chamado urls.py.
Adicione o seguinte código para registrar os caminhos para as duas exibições que criamos:
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 ]
Observe que criamos um caminho padrão (''
) para apontá-lo para a exibição shelter_list
. Também registramos shelter/<int:pk>
para referenciar a exibição shelter_detail
. Como destacado anteriormente, pk
será transmitido como o parâmetro pk
para shelter_detail
.
Registrar a URLconf com o projeto
O Django usa um arquivo urls.py principal como a URLconf. Como resultado, precisamos garantir que o que criamos seja devidamente registrado.
Abra project/urls.py.
Na parte inferior do arquivo, localize a linha 17, que indica:
from django.urls import path
Ao final da linha, adicione
, include
. A nova linha 17 agora será a seguinte:from django.urls import path, include
Abaixo da linha que indica
TODO: Register URLconf
, adicione o seguinte:# TODO: Register URLconf path('', include('dog_shelters.urls')),
Importante
A vírgula à direita é necessária.
Salve todos os arquivos selecionando Arquivo>Salvar Tudo.