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_id = models.ForeignKeyHash(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_id = 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.1.zip
(12.5 kB
view details)
File details
Details for the file redis-astra-1.0.1.zip
.
File metadata
- Download URL: redis-astra-1.0.1.zip
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1f6624a252e59d7b9a0ea3745d6d5ab2a587915f2d67e024316701600fbb83b |
|
MD5 | 32bd471267843cbbe14961345ba64158 |
|
BLAKE2b-256 | ff6c56c65cfc0e087812716c77db483874a418b29d92e4bdaa976f9fa167790a |