Skip to main content

Django Rate limiter for Admin panel, with synchronization towards Redis. Currently supports OpenResty as a rate limit server

Project description

Django Rate Limiter

  • Tested on: Python 3.11.5
  • Django 5.2.12

High Level Design principle of library

Start by installing the package:

pip install django-api-rate-limiter

Then add in your settings.py

INSTALLED_APPS = [
    # rest of the apps..
    'django_api_rate_limiter'
]

# you will need to configure the default cache to point to Redis 

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

Navigate to your /admin page and visit section "Admin_Limiter"->"Api limiters".

There you can set up your own limits specified in "values per second". For example, you can fill up as:

Speed Value: 10 Method: Get Url: /api/limited

This translates to: For every anonymous & logged in user apply the limit of 10 requests per second for GET requests going to /api/limited

If your project is using django-oauth-toolkit, you can specify per-user limits, which are linked to the oauth tokens issued to users

Please install OpenResty if you would like to use the Lua files from "nginx_lua" folder

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_api_rate_limiter-0.0.4.tar.gz (68.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_api_rate_limiter-0.0.4-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file django_api_rate_limiter-0.0.4.tar.gz.

File metadata

  • Download URL: django_api_rate_limiter-0.0.4.tar.gz
  • Upload date:
  • Size: 68.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_api_rate_limiter-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c5dea2c2d35973031cdbaf115a6da0ade3e1dcc31d37ab6fe03c9a696bb25316
MD5 294d37b77081611c04a8b4bb2592c4d2
BLAKE2b-256 cd962984982f3deb4448c318f82a3465d73ae83ad9fd021b680f75ce6a10e4cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_api_rate_limiter-0.0.4.tar.gz:

Publisher: python-publish.yml on FallenAngel97/django-rate-limiter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_api_rate_limiter-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for django_api_rate_limiter-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 402e011ac9d61d0305ebb8d9c4a843a5bb378b37214526115b502960ba81b2e3
MD5 24ad5e0effcbc824ca2293955e477a1f
BLAKE2b-256 0259e6232029351d9d33e520d997e0f0684c760a4aee4f7ff30050a32835300e

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_api_rate_limiter-0.0.4-py3-none-any.whl:

Publisher: python-publish.yml on FallenAngel97/django-rate-limiter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page