Uprawnienia i ograniczanie częstotliwości
Kontrolowanie, kto i jak często może wywoływać API
Uprawnienia i ograniczanie częstotliwości to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 2 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.
Kto może wywoływać API?
Otwarte API pozwala każdemu odczytywać lub zmieniać dane. Uprawnienia określają, kto może wykonywać poszczególne działania na każdym endpoincie.
Atrybut permission_classes
Reguły dostępu przypina się za pomocą permission_classes do widoku lub ViewSet. DRF sprawdza je przed wykonaniem dowolnego działania.
from rest_framework.permissions import IsAuthenticated
class BookViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]Wbudowane klasy uprawnień
DRF zawiera gotowe reguły: AllowAny otwiera widok, IsAuthenticated wymaga zalogowanego użytkownika, a IsAdminUser ogranicza dostęp do personelu.
Odczyt dla wszystkich, zapis dla członków
IsAuthenticatedOrReadOnly to popularny kompromis: każdy może wykonywać GET, ale tylko zalogowani użytkownicy mogą wykonywać POST, PUT lub DELETE.
Ustawianie domyślnej reguły globalnie
Ustaw regułę obowiązującą w całym projekcie w settings.py, aby każdy widok był domyślnie zabezpieczony, chyba że jawnie z tego zrezygnuje.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}Pisanie niestandardowego uprawnienia
Potrzebują Państwo własnej reguły? Utwórz klasę dziedziczącą po BasePermission i zwracaj True lub False z has_permission dla danego żądania.
from rest_framework.permissions import BasePermission
class IsOwner(BasePermission):
def has_object_permission(self, request, view, obj):
return obj.owner == request.userUprawnienia na poziomie obiektu
Użyj has_object_permission, aby sprawdzać pojedynczy rekord, na przykład pozwolić użytkownikom edytować tylko własne posty. 🔒
Teraz ograniczanie częstotliwości
Uprawnienia odpowiadają na pytanie „kto?”. Ograniczanie częstotliwości odpowiada na pytanie „jak często?”, ograniczając liczbę żądań, które klient może wysłać w określonym przedziale czasu.
Ograniczenia dla anonimowych i użytkowników
DRF oferuje AnonRateThrottle dla nieuwierzytelnionych odwiedzających oraz UserRateThrottle dla zalogowanych kont, dzięki czemu można stosować surowsze limity wobec nieznanych użytkowników.
Konfigurowanie limitów częstotliwości
Ustaw limity w konfiguracji za pomocą DEFAULT_THROTTLE_RATES, podając liczbę oraz okres, na przykład sekundę, minutę, godzinę lub dzień.
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'anon': '20/hour',
'user': '1000/day',
},
}Co chroni ograniczanie częstotliwości
Ograniczanie częstotliwości chroni przed nadużyciami i niekontrolowanymi skryptami. Gdy klient przekroczy limit, DRF zwróci odpowiedź 429 Too Many Requests. 🛡️
Szybkie sprawdzenie
Sprawdźmy różnicę między tymi dwoma mechanizmami kontroli dostępu.
Podsumowanie: dostęp i limity częstotliwości
Można już kontrolować dostęp do endpointów za pomocą klas uprawnień oraz chronić je limitami częstotliwości. Razem zapewniają one bezpieczeństwo i stabilność API. 🎉
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 „Uprawnienia i ograniczanie częstotliwości” jest bezpłatna?
Tak — pełny tekst „Uprawnienia i ograniczanie częstotliwości” 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 „Uprawnienia i ograniczanie częstotliwości”?
Kontrolowanie, kto i jak często może wywoływać API Ć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 2 z 4.
Ile czasu zajmuje lekcja „Uprawnienia i ograniczanie częstotliwości”?
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
- ModelViewSet i routery
- Uprawnienia i ograniczanie częstotliwości
- Uwierzytelnianie tokenami i JWT
- Filtrowanie, wyszukiwanie i stronicowanie