The Django REST framework provides three throttling classes in the rest_framework.throttling module. All of them are subclasses of the SimpleRateThrottle class which inherits from the BaseThrottle class.
The three classes allow us to specify throttling rules that indicate the maximum number of requests in a specific period of time and within a determined scope. Each class is responsible for computing and validating the maximum number of requests per period. The classes provide different mechanisms to determine the previous request information to specify the scope by comparing it with the new request. The Django REST framework stores the required data to analyze each throttling rule in the cache. Thus, the classes override the inherited get_cache_key method that determines the scope that will...