English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La reindirizzamento delle pagine in un'applicazione web è necessaria per molte ragioni. Potrebbe voler reindirizzare l'utente a un'altra pagina quando si verifica un'azione specifica o in caso di errore. Ad esempio, quando un utente accede al sito web, di solito viene reindirizzato alla sua pagina principale o al suo dashboard personale. In Django, la reindirizzamento viene implementata utilizzando il metodo "redirect".
Nel metodo "redirect" è necessario specificare come parametro: il nome della vista della stringa URL da reindirizzare.
myapp/views fino ad ora è così mostrato -
Modificato in - # Nome del file: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com 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}) # Data: 2020-08-08 def viewArticle(request, articleId): """Una vista che visualizza un articolo basato sul suo ID""" return HttpResponse(text) def viewArticles(request, year, month): text = "Visualizzando gli articoli di: %s/%s"%(year, month) return HttpResponse(text)
Modifichiamo 'hello' per reindirizzare a djangoproject.com e 'viewArticle' per reindirizzare al nostro interno a '/myapp/articles'. Il file myapp/view.py viene modificato come segue:
Modificato in - # Nome del file: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com from django.shortcuts import render, redirect from django.http import HttpResponse import datetime # Create your views here. def hello(request): today = datetime.datetime.now().date() daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] return redirect("https://www.djangoproject.com") # Data: 2020-08-08 def viewArticle(request, articleId): """Una vista che visualizza un articolo basato sul suo ID""" Il nome (qui l'articolo) può essere utilizzato come argomento del metodo "redirect", quindi la reindirizzamento di viewArticle può essere modificato - def viewArticles(request, year, month): text = "Visualizzando gli articoli di: %s/%s"%(year, month) return HttpResponse(text)
Nel caso dell'esempio sopra, prima esportiamo 'redirect' da Django. La scorciatoia ci permette di reindirizzare al sito ufficiale di Django utilizzando un URL completo come stringa per il metodo 'redirect'. Nel secondo esempio (nella vista 'viewArticle'), il metodo 'redirect' prende il nome della vista e i suoi parametri come parametri.
Accedendo a /myapp/hello, verrà visualizzata la seguente schermata-
Accedendo a /myapp/article/42, verrà visualizzata la seguente schermata-
Puoi anche specificare se 'redirect' è temporaneo o permanente, aggiungendo il parametro 'permanent = True'. Gli utenti non noteranno la differenza, ma sono dettagli che vengono considerati quando i motori di ricerca classificano i siti web.
Nella pagina 'url.py' definiamo il parametro 'name' quando mappiamo gli URL.
Modificato in - # Nome del file: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com url(r'^articles/(?P\d{2})/(?P\d{4})/', 'viewArticles', name = 'articles'),
该名称(这里的文章)可以被用作“redirect”方法的实参,那么 viewArticle 重定向可以修改 -
Modificato in - # Nome del file: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com # Data: 2020-08-08 def viewArticle(request, articleId): """Una vista che visualizza un articolo basato sul suo ID""" Il nome (qui l'articolo) può essere utilizzato come argomento del metodo "redirect", quindi la reindirizzamento di viewArticle può essere modificato -
return redirect(viewArticles, year = "2045", month = "02")
Modificato in - # Nome del file: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com # Data: 2020-08-08 def viewArticle(request, articleId): """Una vista che visualizza un articolo basato sul suo ID""" text = "Visualizzazione dell'articolo numero: %s" %articleId
return redirect(articles, year = "2045", month = "02") Nota