Skip to main content

No project description provided

Project description

django-dynamodb-cache

Fast, safe, cost-effective DynamoDB cache backend for Django

Tests Coverage Package version Supported Python versions Supported django versions License

Introduce

This project is a cache backend using aws dynamodb.

This is compatible with the django official cache framework.

Did you set the boto3 permission?

Enter the django official command createcachetable and get started easily.

Why should I use this?

  • There are few management points, because dynamodb is a fully managed service.
  • Data is safely stored unlike inmemory db.
  • Because you only pay for what you use, it saves money on light projects such as side projects or back offices.
  • If you need more performance, you can easily switch to DAX.

Installation

pip install django-dynamodb-cache

Setup on Django

On Django settings.py

INSTALLED_APPS = [
    ...
    "enkonix_django_dynamodb_cache"
]

CACHES = {
    "default": {
        "BACKEND": "enkonix_django_dynamodb_cache.backend.DjangoCacheBackend",
        "LOCATION": "table-name",                  # (mandatory)
        "TIMEOUT": 120,                            # (optional) seconds
        "KEY_PREFIX": "enkonix_django_dynamodb_cache",     # (optional)
        "VERSION": 1,                              # (optional)
        "KEY_FUNCTION": "path.to.function",        # (optional) f"{prefix}:{key}:{version}"
        "OPTIONS": {
            "aws_region_name": "us-east-1",                    # (optional)
            "aws_access_key_id": "aws_access_key_id",          # (optional)
            "aws_secret_access_key": "aws_secret_access_key",  # (optional)
            "is_on_demand": False,                 # (optional) default: True
            "read_capacity_units": 1,              # (optional)
            "write_capacity_units": 1,             # (optional)
            "encode": "enkonix_django_dynamodb_cache.encode.PickleEncode"  # (optional)
        }
    }
}

Aws credentials

The same method as configuring-credentials provided in the boto3 documentation is used. https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#configuring-credentials

Create cache table command

Run manage command to create cache table on Dynamodb before using

python manage.py createcachetable

How to contribute

This project is welcome to contributions!

Please submit an issue ticket before submitting a patch.

Pull requests are merged into the main branch and should always remain available.

After passing all test code, it is reviewed and merged.

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

enkonix-django-dynamodb-cache-0.3.3.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file enkonix-django-dynamodb-cache-0.3.3.tar.gz.

File metadata

File hashes

Hashes for enkonix-django-dynamodb-cache-0.3.3.tar.gz
Algorithm Hash digest
SHA256 e4a22012eee3f73d7dec6e1a236e75beb990d10fb089b5680265d722ae0fa3bd
MD5 dcf4ce680878ac171aff172d6a65ddc6
BLAKE2b-256 6998da9fd90afdac11af67376b685894c59f113c43a7588e0328c8575c661cf0

See more details on using hashes here.

File details

Details for the file enkonix_django_dynamodb_cache-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for enkonix_django_dynamodb_cache-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 11aa840f64237b1688f5cb0a645d46482697753737022bacff144270f21e879b
MD5 baf1a5935599672f9de14690f6e1a49c
BLAKE2b-256 db65ec8bcd661b4e178078ec6a3ab652ed3e0158e6b5b8608445a6a43b6fb070

See more details on using hashes here.

Supported by

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