我目前正在使用django而我正在尝试缓存我的视图
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def index(request):
# This method takes time to run, which is why I need to cache this view
a_method_that_preforms_heavy_db_transactions()
context_dict={'Models': Model.objects.all()}
return render(request, 'webapp/index.html', context_dict)
我有a_method_that_preforms_heavy_db_transactions()
只是为了测试加载时间,看看它是否缓存了视图,但加载时间不会改变,因为它应该是"缓存"而且我不确定为什么这是我的settings.py
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'My_computers_ip_address:11211',
}
}
答案 0 :(得分:3)
您需要添加caching service
,例如Memcached
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211/A_ROUTE_WITH_A_HEAVY_TRANSACTION',
}
}
您可以在这里找到所需的一切:
答案 1 :(得分:1)
你有set caching up吗?您需要在CACHES
文件中定义settings.py
。您可以使用memcached,Redis,数据库或文件系统。最简单的设置是本地内存,因为它不需要任何外部服务:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake',
}
}