首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将我的django应用程序连接到redis安装

将我的django应用程序连接到redis安装
EN

Stack Overflow用户
提问于 2013-05-14 15:33:57
回答 2查看 723关注 0票数 2

我有个django应用。该应用程序是一个普通的应用程序。对我来说一切都运行得很好。

我现在想实现一个排行榜。阅读几个redis帮助你做到这一点的地方。真的很棒。所以我在服务器上安装并配置了redis。

我的用户配置文件的最小表示为:

代码语言:javascript
复制
class UserProfile(models.Model):

    user = models.OneToOneField(User)
    invited_friends = models.BooleanField(default=False)
    filled_wishlist = models.BooleanField(default=False)
    upvote = models.IntegerField()
    downvote = models.IntegerField()

    @property
    def reputation(self):
        return int(confidence_fixed(self.upvote, self.downvote)*100)

根据这个声誉属性,我得到一个值。所有这些都发生在PostgreSQL数据库后端。

现在我要做的是,将这些分数放入redis键值存储中,并生成排行榜。有一个非常棒的redis库用来实现排行榜:https://github.com/agoragames/leaderboard-python

所以我的问题是,假设我的redis服务器在XXX.XXX.XX.XX:6342上运行,我如何将我的python/django应用程序连接到redis服务器,并更新KV商店,一旦有一些数字,我如何获取视图和显示?

EN

回答 2

Stack Overflow用户

发布于 2013-05-15 00:36:07

我认为您使用排行榜-python库是正确的。

首先,您需要编写一个一次性脚本,使用leaderboard-python将数据从您的模型移动到redis。

代码语言:javascript
复制
# Create a new leaderboard
reputation_lb = Leaderboard('reputation')

for profile in UserProfile.objects.all():
     reputation.rank_member('user_%i' % profile.user.pk, profile.reputation)

您还需要在UserProfile模型上创建另一个属性,以便从leaderboard-python检索声誉。

然后,您很可能希望更新分数,或者复制数据库中的信息并继续使用您的声誉属性来更新排行榜,或者只需增加/减少存储在redis中的分数。

leaderboard-python库的自述文件非常好,应该包含构建该库所需的所有示例。

票数 1
EN

Stack Overflow用户

发布于 2014-08-02 17:11:40

对于未来的googlers来说,告诉Leaderboard如何连接到redis服务器的方法是在Leaderboard构造函数中指定更多的参数:

reputation_lb =排行榜(‘声誉’,host="xyz.com",port="1234")

有关支持哪些选项的更多详细信息,请在排行榜的构造函数代码中找到:http://pydoc.net/Python/leaderboard/2.8.0/leaderboard/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16537490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档