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.7.zip
(13.0 kB
view details)
File details
Details for the file redis-astra-1.0.7.zip
.
File metadata
- Download URL: redis-astra-1.0.7.zip
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4084c4c553c8e88f1571562f74a2327d916c06525c1920f92940dcbd954e336 |
|
MD5 | d91c76569047fb703fa3ea13058df850 |
|
BLAKE2b-256 | 843c1e50731e30ea359a2c946acf58fdd84e70c8936a72c271289b1603ef7b6e |