在Django中,我有一个根据动态数据进行一些计算的网址。
因此,如果我缓存了url,那么动态数据如有任何更改,它将返回更新的结果。
例如:喜欢购买。
用户添加他想要的项目列表。
我有一个页面localhost/user/items/
,该页面将显示他添加的所有项目的列表,并带有链接localhost/user/items/specs
,以显示他添加的所有项目的规格。
显示localhost/user/items/
页花费的时间更少。
但是localhost/user/items/specs
需要很多时间。
如何缓存localhost/user/items/specs
并反映所有更改
答案 0 :(得分:0)
大量研究源代码后,我发现如果数据未更新,如何显示缓存页面,否则显示修改后的数据视图
from django.middleware.cache import CacheMiddleware
@login_required
someview(request, slug=None)
###### data_updated
# Check the conditions data modified is updated or not
data_updated = True/False
######
cachemiddleware = CacheMiddleware(cache_timeout=60*15)
if data_updated:
#######
# RUN all the code for view
# response = ..........
#######
# this is required because if the url is already cached it will be false
request._cache_update_cache = True
return cachemiddleware.process_response(request, response)
else:
result = cachemiddleware.process_request(request)
if result is not None:
return result
else:
#######
# RUN all the code for view
# response = ..........
#######
return cachemiddleware.process_response(request, response)