English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redirecionamento de Páginas Django

As many reasons are necessary for page redirection in web applications. You may want to redirect users to another page when a specific action occurs or in case of errors. For example, when a user logs into a website, they are often redirected to their homepage or personal dashboard. In Django, redirection is achieved using the 'redirect' method.

No método "redirect", o nome da vista deve ser passado como parâmetro: a string da URL a ser redirecionada.

myapp/As vistas até agora são como follows −

# Nome do arquivo: example.py
# Copyright: 2020 Por w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
def hello(request):
    today = datetime.datetime.now().date()
    daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    return render(request, "hello.html", {"today": today, "days_of_week": daysOfWeek})
 
 def viewArticle(request, articleId):
    """ Uma visualização que exibe um artigo com base em seu ID """
    text = "Exibindo artigo Número: %s" %articleId
    return HttpResponse(text)
 
 def viewArticles(request, year, month):
    text = "Exibindo artigos de: %s"/%s"%(year, month)
    return HttpResponse(text)

Vamos alterar o hello para redirecionar para djangoproject.com e o viewArticle para redirecionar para nosso interno '/myapp/articles' do myapp/view.py será alterado para o seguinte: 

# Nome do arquivo: example.py
# Copyright: 2020 Por w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
from django.shortcuts import render, redirect
 from django.http import HttpResponse
 import datetime
 # Crie suas vistas aqui.
 def hello(request):
    today = datetime.datetime.now().date()
    daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    return redirect("https://www.djangoproject.com")
 
 def viewArticle(request, articleId):
    """ Uma visualização que exibe um artigo com base em seu ID """
    text = "Exibindo artigo Número: %s" %articleId
    return redirect(viewArticles, ano = "2045", mês = "02")
 
 def viewArticles(request, year, month):
    text = "Exibindo artigos de: %s"/%s"%(year, month)
    return HttpResponse(text)

No exemplo acima, primeiro importamos o redirect (redirect) do Django. Para criar um atalho e redirecionar para o site oficial do Django, usamos a URL completa como uma string no método redirect. No segundo exemplo (no viewArticle view), usamos o método redirect para obter o nome da vista e seus parâmetros.

acessar/myapp/hello, exibirá a seguinte tela-

e acessar /myapp/article/42Isso apresentará a seguinte tela-

Também podemos especificar se o "redirect" é temporário ou permanente, adicionando o parâmetro permanent = True. O usuário não verá muita diferença, mas essas são detalhes que os motores de busca levam em consideração na classificação do site.

Nós definimos o parâmetro "name" no url.py ao mapear URLs.

# Nome do arquivo: example.py
# Copyright: 2020 Por w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
url(r'^articles/(?P\d{2})/(?P\d{4})/', 'viewArticles', nome = 'articles'),

Este nome (aqui o artigo) pode ser usado como argumento da função "redirect"; então o redirecionamento viewArticle pode ser modificado -

# Nome do arquivo: example.py
# Copyright: 2020 Por w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
def viewArticle(request, articleId):
    """ Uma visualização que exibe um artigo com base em seu ID """
    text = "Exibindo artigo Número: %s" %articleId
    return redirect(viewArticles, ano = "2045", mês = "02")

Modifique para −

# Nome do arquivo: example.py
# Copyright: 2020 Por w3codebox
# Autor por: pt.oldtoolbag.com
# Data: 2020-08-08
def viewArticle(request, articleId):
    """ Uma visualização que exibe um artigo com base em seu ID """
    text = "Exibindo artigo Número: %s" %articleId
    return redirect(articles, ano = "2045", mês = "02")

Nota - 还存在一个生成 URL 的函数;它以相同的方式用于重定向;“reverse”方法(django.core.urlresolvers.reverse)。这个函数不返回HttpResponseRedirect对象,而仅仅包含URL和任何传入的参数编译视图的字符串。