ORM for Redis
Project description
redis-astra
Redis-astra is Python light ORM for Redis
Example:
import redis
from astra import models
db = redis.StrictRedis(host='127.0.0.1', decode_responses=True)
class SiteObject(models.Model):
database = db
name = models.CharHash()
class UserObject(models.Model):
database = db
name = models.CharHash()
login = models.CharHash()
site = models.ForeignKey(to='SiteObject')
sites_list = models.List(to='SiteObject')
viewers = models.IntegerField()
So you can use it like this:
>>> user = UserObject(pk=1, name="Mike", viewers=5)
>>> user.login = 'mike@null.com'
>>> user.login
'mike@null.com'
>>> user.viewers_incr(2)
7
>>> site = SiteObject(pk=1, name="redis.io")
>>> user.site = site
>>> user.sites_list.lpush(site, site, site)
3
>>> len(user.sites_list)
3
>>> user.sites_list[2].name
'redis.io'
Redis-astra supported signals, based on PyDispatcher:
from astra import signals
def save_handler(**kwargs):
print(kwargs)
signals.post_init.connect(save_handler)
signals.post_assign.connect(save_handler)
>>> user = UserObject(pk=1, name="Mike", viewers=5)
{'signal': 'post_init', 'instance': <Model UserObject(pk=1)>, 'sender': <class '__main__.UserObject'>}
>>> user.login = 'mike@null.com'
{'signal': 'post_assign', 'value': 'mike@null.com', 'instance': <Model UserObject(pk=1)>, 'attr': 'login', 'sender': <class '__main__.UserObject'>}
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-1.0.5.zip
(12.9 kB
view details)
File details
Details for the file redis-astra-1.0.5.zip
.
File metadata
- Download URL: redis-astra-1.0.5.zip
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c430c6ad9a95e78974116999d16a8283c6e17a6a899e0f59c23df4baa1a83866 |
|
MD5 | d2e3006c090ca800ed12437cb9bd4ee0 |
|
BLAKE2b-256 | eed40cd0319e344e025a6491f7aae2057647a82b16d4c90fe53d302dab7eb144 |