【问题标题】:How to assign and return multiple values from Django cache?如何从 Django 缓存中分配和返回多个值?
【发布时间】:2012-08-05 22:16:46
【问题描述】:

不确定这是 django 问题还是 python 问题。我试图通过从返回多个值的函数中接受值来使缓存工作。

目前页面在heavy_view函数上给我这个错误:“'NoneType'对象不可迭代”

有没有办法让“counter,college_user,name_college_list = cache.get(cache_key)”行工作?然后检查它是否为空。谢谢!

 #Views.py

 def filter_results():
     #some code here

     return counter, college_user, name_college_List    


 def heavy_view(request):
     cache_key = 'facebookcache'
     cache_time = 180 # time to live in seconds
     counter, college_user, name_college_list = cache.get(cache_key)
     if not cache.get(cache_key):
         result = filter_results() # some calculations here
         cache.set(cache_key, result, cache_time)
     return result

【问题讨论】:

    标签: python django function caching


    【解决方案1】:

    你可以这样做:

    result = cache.get(cache_key)
    if not result:
        result = filter_result()
        cache.set(cache_key, result, cache_time)
    
    counter, college_user, name_college_list = result
    

    【讨论】:

    • 最有效的答案。谢谢!
    【解决方案2】:

    这是一个 Python 的东西

    当你这样做时

    counter, college_user, name_college_list = cache.get(cache_key)
    

    第一次没有值 -> 返回None。 这有用吗?

    result = cache.get(cache_key)
    if result is None:
        result = filter_results()
        cache.set(cache_key, result, cache_time)
    else:
        counter, college_user, name_college_list = result
    return result
    

    【讨论】:

      猜你喜欢
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 2021-08-02
      • 1970-01-01
      • 2023-03-17
      • 2012-01-12
      • 1970-01-01
      相关资源
      最近更新 更多