【发布时间】:2015-11-22 13:12:00
【问题描述】:
我在我的 django 项目中使用 celery 和 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 和r.set 和其他东西,它们已经奏效了。但是,在 home.html 页面上,我看不到 my_var1 或 my_var2 的内容,这表明 'this_var' 没有存储我的字典 context。有人可以帮我吗?
另外,如果我只是在views.py 中的home(request) 函数中放置上下文,那么一切都会正常工作。
【问题讨论】:
标签: python django redis celery