如何用Django redis存储数据

2024-09-26 18:12:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django项目中使用芹菜和redis。在

# In tasks.py
@shared_task
def my_func():
    r = redis.StrictRedis()
    context = {
        "my_var1" : afunction(6)
        "my_var2" : afunction(10)
    }
    r.set('this_var', context)

# In views.py
def home(request):
    r = redis.StrictRedis()
    return render(request, "home.html", r.get('this_var'))

#In home.html
<h1>{{ my_var1 }}</h1>
<h1>{{ my_var2 }}</h1>

其中afunction()只是我创建的一个函数,它在将数字作为参数时起作用。另外,我设置了celery beat、celery和redis,就像我用其他示例测试它们一样,以确保它们能够工作。另外,我以前也用过r.get和{}来处理其他事情,它们都起作用了。但是,在主页.html我看不到my_var1或{}的内容,这意味着{}没有存储我的字典{}。有人能帮帮我吗?在

另外,如果我只是在中的home(request)函数中放置上下文视图.py一切都很好。在


Tags: inpyredishomerequestmydefhtml
1条回答
网友
1楼 · 发布于 2024-09-26 18:12:26

那是因为你打电话来redis.set公司()使用字典,而set是为处理字符串而设计的。所以添加到redis的是字典的字符串表示。在

您需要使用hmset来保存字典,而hgetall则需要检索它。例如:

r.hmset('this_var', context)

以及

^{pr2}$

相关问题 更多 >

    热门问题