Autorisations et limitation de débit
Contrôlez qui peut appeler votre API et à quelle fréquence.
Autorisations et limitation de débit est une leçon Django Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Django Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Django Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Who Can Call Your API?
An open API lets anyone read or change your data. Permissions decide who is allowed to do what on each endpoint.
The permission_classes Attribute
You attach access rules with permission_classes on a view or ViewSet. DRF checks them before any action runs.
from rest_framework.permissions import IsAuthenticated
class BookViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]Built-in Permission Classes
DRF ships ready rules: AllowAny opens a view, IsAuthenticated requires a logged-in user, and IsAdminUser limits it to staff.
Read for All, Write for Members
IsAuthenticatedOrReadOnly is a popular middle ground: anyone can GET, but only logged-in users can POST, PUT, or DELETE.
Setting a Default Globally
Set a project-wide rule in settings.py so every view starts secure unless it opts out.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}Writing a Custom Permission
Need your own rule? Subclass BasePermission and return True or False from has_permission for the request.
from rest_framework.permissions import BasePermission
class IsOwner(BasePermission):
def has_object_permission(self, request, view, obj):
return obj.owner == request.userObject-Level Permissions
Use has_object_permission to check a single record, like letting users edit only the posts they own. 🔒
Now, Throttling
Permissions answer who. Throttling answers how often, capping the number of requests a client may send in a time window.
Anon vs User Throttles
DRF offers AnonRateThrottle for unauthenticated visitors and UserRateThrottle for logged-in accounts, so you can be stricter with strangers.
Configuring Rate Limits
Set the limits in settings with DEFAULT_THROTTLE_RATES, using a count plus a period like second, minute, hour, or day.
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'anon': '20/hour',
'user': '1000/day',
},
}What Throttling Protects
Throttling shields you from abuse and runaway scripts. When a client goes over, DRF returns a 429 Too Many Requests response. 🛡️
Quick Check
Let us confirm the difference between the two gatekeepers.
Recap: Access and Rate Limits
You can now gate endpoints with permission classes and protect them with throttle rates. Together they keep your API both safe and stable. 🎉
Apprends Python avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Autorisations et limitation de débit » est-elle gratuite ?
Oui — le texte complet de « Autorisations et limitation de débit » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Django Academy, passe à CoddyKit PRO. Le cours Django Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Autorisations et limitation de débit » ?
Contrôlez qui peut appeler votre API et à quelle fréquence. Tu pratiques Django Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Django Academy ?
Aucune expérience préalable n'est requise. Django Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Autorisations et limitation de débit » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Django Academy ?
Oui. Chaque leçon Django Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- ModelViewSet et routeurs
- Autorisations et limitation de débit
- Authentification par jeton et JWT
- Filtrage, recherche et pagination