Exercício - Criar vistas
Queremos atualizar a nossa aplicação 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 visualizações e, em seguida, registrando os caminhos apropriados.
Criar vistas
No Visual Studio Code, abra dog_shelters/views.py.
No final da linha onde se lê
from django.shortcuts import render
, adicione, get_object_or_404
. A linha deve agora ler-se:from django.shortcuts import render, get_object_or_404
Abaixo da linha que lê
from django.shortcuts import render
, adicione o seguinte código Python para importar seus modelos:from . import models
No final do views.py, adicione o código a seguir para carregar todos os abrigos, crie o objeto de contexto para o modelo e, em seguida, renderize o modelo para o usuário. Isso se tornará nossa visualização de lista para abrigos e a página padrão para nosso site.
def shelter_list(request): shelters = models.Shelter.objects.all() context = {'shelters': shelters} return render(request, 'shelter_list.html', context)
No final de views.py, adicione o código a seguir para carregar um abrigo específico por sua
pk
chave primária, crie o objeto de contexto para o modelo e, em seguida, renderize o modelo para o usuário. Esta será 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 o URLconf
Para que os nossos pontos de vista sejam exigíveis, precisamos de registar os caminhos adequados.
Crie um novo arquivo no dog_shelters chamado urls.py.
Adicione o seguinte código para registrar os caminhos para os dois modos de exibição 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 apontar para nossa shelter_list
exibição. Também nos registámos shelter/<int:pk>
para referenciar a nossa shelter_detail
opinião. Como destacado anteriormente, pk
será passado como o pk
parâmetro para shelter_detail
.
Registe-se URLconf com o nosso projeto
Django usa um núcleo urls.py arquivo como seu URLconf. Consequentemente, temos de garantir que aquele que criámos está devidamente registado.
Abrir projeto/urls.py.
Na parte inferior do arquivo, encontre a linha 17, que diz:
from django.urls import path
No final da linha, adicione
, include
. A nova linha 17 deverá agora ser a seguinte:from django.urls import path, include
Abaixo da linha que diz
TODO: Register URLconf
, adicione o seguinte:# TODO: Register URLconf path('', include('dog_shelters.urls')),
Importante
A vírgula à direita é obrigatória.
Salve todos os arquivos selecionando Arquivo>Salvar tudo.