Permessi e limitazione delle richieste
Controllare chi può chiamare l'API e con quale frequenza
Permessi e limitazione delle richieste è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 2 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.
Chi può chiamare la Sua API?
Una API aperta permette a chiunque di leggere o modificare i dati. Le autorizzazioni stabiliscono chi può fare cosa su ogni endpoint.
L'attributo permission_classes
Le regole di accesso si associano a una vista o a un ViewSet tramite permission_classes. DRF le verifica prima di eseguire qualsiasi azione.
from rest_framework.permissions import IsAuthenticated
class BookViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]Classi di autorizzazione integrate
DRF include regole pronte all'uso: AllowAny rende accessibile una vista, IsAuthenticated richiede un utente autenticato e IsAdminUser limita l'accesso al personale amministrativo.
Lettura per tutti, scrittura per gli utenti registrati
IsAuthenticatedOrReadOnly è una soluzione intermedia molto usata: chiunque può eseguire GET, ma solo gli utenti autenticati possono eseguire POST, PUT o DELETE.
Impostare un valore predefinito globale
Imposti una regola valida per l'intero progetto in settings.py, così ogni vista sarà protetta per impostazione predefinita, salvo deroga esplicita.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}Scrivere un'autorizzazione personalizzata
Ha bisogno di una regola personale? Estenda BasePermission e restituisca True o False da has_permission per la richiesta.
from rest_framework.permissions import BasePermission
class IsOwner(BasePermission):
def has_object_permission(self, request, view, obj):
return obj.owner == request.userAutorizzazioni a livello di oggetto
Usi has_object_permission per controllare un singolo record, ad esempio permettendo agli utenti di modificare solo i post di cui sono proprietari. 🔒
Ora il throttling
Le autorizzazioni stabiliscono chi. Il throttling stabilisce con quale frequenza, limitando il numero di richieste che un client può inviare in un intervallo di tempo.
Throttling per utenti anonimi e autenticati
DRF offre AnonRateThrottle per i visitatori non autenticati e UserRateThrottle per gli account autenticati, così può applicare limiti più severi agli estranei.
Configurare i limiti di frequenza
Imposti i limiti nelle impostazioni con DEFAULT_THROTTLE_RATES, usando un conteggio e un intervallo come secondo, minuto, ora o giorno.
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'anon': '20/hour',
'user': '1000/day',
},
}Da cosa protegge il throttling
Il throttling La protegge da abusi e script fuori controllo. Quando un client supera il limite, DRF restituisce una risposta 429 Too Many Requests. 🛡️
Verifica rapida
Verifichiamo la differenza tra questi due meccanismi di controllo.
Riepilogo: accesso e limiti di frequenza
Ora può controllare l'accesso agli endpoint con le classi di autorizzazione e proteggerli con i limiti di throttling. Insieme, mantengono la Sua API sicura e stabile. 🎉
Domande Frequenti
La lezione «Permessi e limitazione delle richieste» è gratuita?
Sì — il testo completo di «Permessi e limitazione delle richieste» è 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 «Permessi e limitazione delle richieste»?
Controllare chi può chiamare l'API e con quale frequenza 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 2 di 4.
Quanto tempo richiede la lezione «Permessi e limitazione delle richieste»?
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
- ModelViewSet e router
- Permessi e limitazione delle richieste
- Autenticazione con token e JWT
- Filtri, ricerca e paginazione