redis的orm
redis-astra的Python项目详细描述
阿斯特拉红葡萄酒
redis astra是redis的python light orm。
note:版本2与版本1有不可移植的更改。见CHANGELOG.txt
示例:
importredisfromastraimportmodelsdb=redis.StrictRedis(host='127.0.0.1',decode_responses=True)classSiteObject(models.Model):defget_db(self):returndbname=models.CharHash()classUserObject(models.Model):defget_db(self):returndbname=models.CharHash()login=models.CharHash()site=models.ForeignKey(to=SiteObject)sites_list=models.List(to=SiteObject)viewers=models.IntegerField()defsave(self,action,attr=None,value=None):print('\t * %s'%kwargs)
所以您可以这样使用:
>>>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':<ModelSiteObject(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'}
安装
支持python版本2.6、2.7、3.3、3.4、3.5 redis py版本>;=2.9.1
pip install redis-astra