login_required e protezione delle viste
Limitare le pagine agli utenti autenticati
login_required e protezione delle viste è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Alcune pagine sono private
Una dashboard o una pagina del profilo dovrebbe essere accessibile solo agli utenti autenticati. Django rende semplice e coerente proteggere queste viste. 🚧
Conoscere login_required
Il decoratore login_required protegge una vista: i visitatori anonimi vengono reindirizzati automaticamente alla pagina di accesso.
from django.contrib.auth.decorators import login_requiredDecorare una vista
Inserisca @login_required subito sopra la funzione della vista. Per bloccare l'accesso alla pagina basta questa riga.
@login_required
def dashboard(request):
return render(request, "dashboard.html")Dove vengono inviati i visitatori
Quando l'accesso viene negato, Django reindirizza all'URL indicato in LOGIN_URL. Lo imposti nelle impostazioni, così il reindirizzamento porterà alla pagina di accesso.
LOGIN_URL = "/accounts/login/"Il parametro next
Il reindirizzamento aggiunge un valore di query next con l'URL originale, così dopo l'accesso l'utente torna alla pagina desiderata. 🎯
Proteggere le viste basate su classi
Per le viste basate su classi, usi LoginRequiredMixin invece del decoratore. Lo elenchi per primo tra le classi base.
from django.contrib.auth.mixins import LoginRequiredMixinLa posizione del mixin è importante
LoginRequiredMixin deve precedere la vista generica nella definizione della classe, altrimenti la protezione non verrà applicata.
class Dashboard(LoginRequiredMixin, TemplateView):
template_name = "dashboard.html"Controllare all'interno di una vista
A volte è preferibile avere il controllo manuale. Legga request.user.is_authenticated e gestisca autonomamente i rami, invece di usare il decoratore.
if not request.user.is_authenticated:
return redirect("login")Le autorizzazioni vanno oltre
Per richiedere un'autorizzazione specifica, non solo un semplice accesso, usi permission_required. Verifica che l'utente disponga dell'autorizzazione indicata.
from django.contrib.auth.decorators import permission_requiredNascondere i collegamenti nei template
Nei template, racchiuda i collegamenti privati in un controllo su user.is_authenticated, così gli ospiti non vedranno nemmeno i pulsanti che non possono usare.
Difesa a più livelli
Nascondere un collegamento non è una vera misura di sicurezza. Protegga sempre anche la view, perché gli utenti possono digitare direttamente qualunque URL.
Verifica rapida
Quale impostazione stabilisce dove login_required invia gli utenti anonimi?
Riepilogo: proteggere le viste
Ha bloccato le pagine con login_required e LoginRequiredMixin, ha impostato LOGIN_URL e ha imparato a proteggere le viste, non solo a nascondere i collegamenti. ✅
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «login_required e protezione delle viste» è gratuita?
Sì — il testo completo di «login_required e protezione delle viste» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «login_required e protezione delle viste»?
Limitare le pagine agli utenti autenticati Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «login_required e protezione delle viste»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Il modello User e authenticate()
- login, logout e viste di autenticazione
- Registrazione con UserCreationForm
- login_required e protezione delle viste