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.
Source Distribution
redis-astra-2.0.0.zip
(12.0 kB
view details)
File details
Details for the file redis-astra-2.0.0.zip
.
File metadata
- Download URL: redis-astra-2.0.0.zip
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 066bcffb678a737b376f4bff297f753103334cf9da5eb55d0b0c8d03c1dbd102 |
|
MD5 | ce25a9376d213fa1c0074973aa887336 |
|
BLAKE2b-256 | 887cef76c0be4ddc1bd6d80729edce20bd32d02857a7894305bee83205cb5b60 |