Разрешения и ограничение частоты запросов
Управляйте тем, кто и как часто может обращаться к вашему API
«Разрешения и ограничение частоты запросов» — бесплатный урок Django Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
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. 🎉
Часто задаваемые вопросы
Урок «Разрешения и ограничение частоты запросов» бесплатный?
Да — полный текст урока «Разрешения и ограничение частоты запросов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разрешения и ограничение частоты запросов»?
Управляйте тем, кто и как часто может обращаться к вашему API Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Django Academy?
Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Разрешения и ограничение частоты запросов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Django Academy?
Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- ModelViewSet и маршрутизаторы
- Разрешения и ограничение частоты запросов
- Аутентификация по токенам и JWT
- Фильтрация, поиск и разбиение на страницы