17.7. Views em Django: Redirecionamento de URLs

Página 98

Em Django, as views são uma parte crucial do sistema, pois elas são responsáveis por processar as solicitações HTTP e retornar uma resposta HTTP. Uma das funcionalidades importantes das views é a capacidade de redirecionar URLs, o que é essencial para a navegação eficaz em um site. Neste capítulo do nosso curso de criação de sistemas com Python e Django, vamos explorar a fundo o conceito de redirecionamento de URLs.

Em termos simples, o redirecionamento de URLs é um processo que envia um usuário de uma URL para outra. Isso pode ser útil em várias situações. Por exemplo, você pode querer redirecionar os usuários para uma página de login se eles tentarem acessar uma página que exige autenticação. Alternativamente, você pode querer redirecionar os usuários para uma página diferente se a página que eles estão tentando acessar não existir.

Para começar com o redirecionamento de URLs em Django, você precisará importar a função redirect do módulo django.shortcuts. Esta função aceita um argumento que é a URL para a qual você deseja redirecionar o usuário.

Aqui está um exemplo simples de como você pode usar a função redirect:

from django.shortcuts import redirect

def my_view(request):
    ...
    return redirect('/another-url/')

Neste exemplo, a função my_view redireciona o usuário para '/another-url/'. Note que a URL que você passa para a função redirect deve ser uma string.

Uma coisa importante a notar é que a função redirect não termina a execução da view. Isso significa que qualquer código que vem depois da chamada para redirect será executado, mesmo que o usuário seja redirecionado para outra página. Portanto, é uma boa prática colocar a chamada para redirect no final da sua view.

Além de aceitar uma string que representa uma URL, a função redirect também pode aceitar um objeto de modelo. Neste caso, Django irá chamar o método get_absolute_url do objeto de modelo para obter a URL para a qual redirecionar o usuário. Isso pode ser útil se a URL para a qual você deseja redirecionar o usuário depende de algum dado no objeto de modelo.

from django.shortcuts import redirect

def my_view(request):
    ...
    my_object = MyModel.objects.get(pk=1)
    return redirect(my_object)

Aqui, a função my_view redireciona o usuário para a URL retornada pelo método get_absolute_url do objeto my_object.

Outra maneira de usar a função redirect é passar o nome de uma view como argumento. Neste caso, Django irá usar a função reverse para determinar a URL da view e redirecionar o usuário para essa URL.

from django.shortcuts import redirect

def my_view(request):
    ...
    return redirect('name-of-view')

Neste exemplo, a função my_view redireciona o usuário para a URL da view cujo nome é 'name-of-view'. Note que o nome da view que você passa para a função redirect deve ser uma string.

Em resumo, o redirecionamento de URLs é uma técnica poderosa que permite controlar o fluxo de navegação em seu site. Django fornece a função redirect para facilitar o redirecionamento de URLs, e esta função pode aceitar uma string que representa uma URL, um objeto de modelo ou o nome de uma view como argumento.

Esperamos que este capítulo tenha lhe dado uma compreensão clara de como o redirecionamento de URLs funciona em Django. No próximo capítulo, vamos explorar outro conceito importante em Django: os modelos.

Ahora responde el ejercicio sobre el contenido:

O que a função redirect em Django aceita como argumento para redirecionar URLs?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

9917.8. Views em Django: Trabalhando com autenticação

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.