login_required i ochrona widoków
Ograniczanie stron do uwierzytelnionych użytkowników
login_required i ochrona widoków to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
Niektóre strony są prywatne
Panel użytkownika lub strona profilu powinny być dostępne tylko dla zalogowanych użytkowników. Django ułatwia ochronę takich widoków i zapewnia jej spójność. 🚧
Poznaj login_required
Dekorator login_required chroni widok: anonimowi odwiedzający są automatycznie przekierowywani na stronę logowania.
from django.contrib.auth.decorators import login_requiredOzdabianie widoku dekoratorem
Umieść @login_required bezpośrednio nad funkcją widoku. Ta jedna linia wystarczy, aby zablokować dostęp do strony.
@login_required
def dashboard(request):
return render(request, "dashboard.html")Dokąd są przekierowywani odwiedzający
Gdy dostęp zostanie odrzucony, Django przekierowuje użytkownika na adres URL określony w LOGIN_URL. Ustaw go w ustawieniach, aby przekierowanie prowadziło na stronę logowania.
LOGIN_URL = "/accounts/login/"Parametr next
Przekierowanie dodaje wartość zapytania next zawierającą pierwotny adres URL, dzięki czemu po zalogowaniu użytkownik wraca na wybraną wcześniej stronę. 🎯
Ochrona widoków opartych na klasach
W przypadku widoków opartych na klasach użyj LoginRequiredMixin zamiast dekoratora. Wymień go jako pierwszy wśród klas bazowych.
from django.contrib.auth.mixins import LoginRequiredMixinPołożenie mixina ma znaczenie
LoginRequiredMixin musi znajdować się przed widokiem generycznym w definicji klasy, inaczej ochrona nie zadziała.
class Dashboard(LoginRequiredMixin, TemplateView):
template_name = "dashboard.html"Sprawdzanie wewnątrz widoku
Czasami potrzebna jest ręczna kontrola. Odczytaj request.user.is_authenticated i samodzielnie wybierz dalsze działanie zamiast używać dekoratora.
if not request.user.is_authenticated:
return redirect("login")Uprawnienia dają więcej możliwości
Aby wymagać konkretnego uprawnienia, a nie tylko zalogowania, użyj permission_required. Sprawdza ono, czy użytkownik ma nazwane uprawnienie.
from django.contrib.auth.decorators import permission_requiredUkrywanie odnośników w szablonach
W szablonach otocz prywatne odnośniki warunkiem user.is_authenticated, aby goście nie widzieli nawet przycisków, z których nie mogą korzystać.
Wielowarstwowa ochrona
Ukrycie odnośnika nie zapewnia prawdziwego bezpieczeństwa. Zawsze chroń także sam widok, ponieważ użytkownicy mogą bezpośrednio wpisać dowolny adres URL.
Szybkie sprawdzenie
Jakie ustawienie określa, dokąd login_required wysyła anonimowych użytkowników?
Podsumowanie: ochrona widoków
Zablokowano strony za pomocą login_required i LoginRequiredMixin, ustawiono LOGIN_URL oraz nauczono się chronić widoki, a nie tylko ukrywać odnośniki. ✅
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „login_required i ochrona widoków” jest bezpłatna?
Tak — pełny tekst „login_required i ochrona widoków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „login_required i ochrona widoków”?
Ograniczanie stron do uwierzytelnionych użytkowników Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Django Academy?
Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „login_required i ochrona widoków”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?
Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Model User i authenticate()
- login, logout i widoki uwierzytelniania
- Rejestracja z UserCreationForm
- login_required i ochrona widoków