An extensible key-value store backend for Django applications.
This module provides an abstraction layer for accessing a key-value storage.
Configuring your key-value store is a matter of adding a statement in this form to your Django settings module:
KEY_VALUE_STORE_BACKEND = 'scheme://store?parameters'
Where scheme
is one of the following, persistent stores:
- db (local table accessed through Django's database connection)
- googleappengine (Google AppEngine data store)
- sdb (Amazon SimpleDB)
- tokyotyrant (Tokyo Tyrant)
- redis (Redis)
And some non-persistent stores, provided mainly for testing purposes:
- locmem
- memcached
store
and parameters
varies from one backend to another. Refer to the documentation included in each backend implementation for further details.
You can define a django_kvstore-backed custom model, in a fashion similar to Django models (although it does not support querying, except by primary key lookup).
Here's an example of a custom model class using django_kvstore:
from django_kvstore import models
class MyData(models.Model):
my_key = models.Field(pk=True)
foo = models.Field()
bar = models.Field()
Typical usage for such a model:
key = "something_unique"
data = MyData.get(key)
if data is None:
data = MyData(my_key=key)
data.foo = "foo"
data.bar = "bar"
data.save()
and deletion:
key = "something_unique"
data = MyData.get(key)
if data is not None:
data.delete()