我在Django中写了一堆使用每页缓存的视图.代码如下所示:
from django.http import HttpResponse
from django.views.decorators.cache import cache_page
@cache_page(60 * 5)
def view_page(request):
return HttpResponse('hello world')
Run Code Online (Sandbox Code Playgroud)
这非常有效,但在测试期间却很痛苦.我如何只在调试关闭时进行缓存?
zsq*_*are 12
查看django的虚拟缓存后端.因此,对于您的开发环境,您应该将缓存后端设置为django.core.cache.backends.dummy.DummyCache
您可以有条件地装饰您的视图。
from django.http import HttpResponse
from django.views.decorators.cache import cache_page
from django.conf import settings
def view_page(request):
return HttpResponse('hello world')
if not settings.DEBUG:
view_page = cache_page(60 * 5)(view_page)
Run Code Online (Sandbox Code Playgroud)
也许这会工作。
from django.http import HttpResponse
from django.views.decorators.cache import cache_page, never_cache
from django.conf import settings
production_cache = lambda func: cache_page(60 * 5)(func) if settings.DEBUG else never_cache(func)
@production_cache
def view_page(request):
return HttpResponse('hello world')
Run Code Online (Sandbox Code Playgroud)
实际上,可以不用lambda来完成
from django.http import HttpResponse
from django.views.decorators.cache import cache_page, never_cache
from django.conf import settings
production_cache = cache_page(60 * 5) if not settings.DEBUG else never_cache
@production_cache
def view_page(request):
return HttpResponse('hello world')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1976 次 |
| 最近记录: |