ORM for Redis
Project description
redis-astra
Redis-astra is Python light ORM for Redis.
Note: version 2 has uncomportable changes with version 1. See CHANGELOG.txt
Example:
import redis from astra import models db = redis.StrictRedis(host='127.0.0.1', decode_responses=True) class SiteObject(models.Model): def get_db(self): return db name = models.CharHash() class UserObject(models.Model): def get_db(self): return db name = models.CharHash() login = models.CharHash() site = models.ForeignKey(to=SiteObject) sites_list = models.List(to=SiteObject) viewers = models.IntegerField() def save(self, action, attr=None, value=None): print('\t * %s' % kwargs)
So you can use it like this:
>>> user = UserObject(pk=1, name="Mike", viewers=5) * {'action': 'post_init', 'value': {'name': 'Mike', 'viewers': 5}} >>> user.login = 'mike@null.com' * {'action': 'pre_assign', 'attr': 'login', 'value': 'mike@null.com'} * {'action': 'post_assign', 'attr': 'login', 'value': 'mike@null.com'} >>> user.login 'mike@null.com' >>> user.viewers_incr(2) 7 >>> site = SiteObject(pk=1, name="redis.io") >>> user.site = site * {'attr': 'site', 'action': 'm2m_link', 'value': <Model SiteObject(pk=1)>} >>> user.sites_list.lpush(site, site, site) 3 >>> len(user.sites_list) 3 >>> user.sites_list[2].name 'redis.io' >>> user.site = None * {'attr': 'site', 'action': 'm2m_remove'} >>> user.remove() * {'action': 'pre_remove', 'attr': 'pk', 'value': '1'} * {'action': 'post_remove', 'attr': 'pk', 'value': '1'}
Install
Python versions 2.6, 2.7, 3.3, 3.4, 3.5 are supported Redis-py versions >= 2.9.1
pip install redis-astra
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size redis-astra-2.0.0.zip (12.0 kB) | File type Source | Python version None | Upload date | Hashes View |