利用缓存机制,能够有效的提升系统性能,是系统优化的重要套路。Django提供了非常方便的缓存机制,如下代码,能够实现 index 接口结果,针对不同cookie,各自缓存30分钟。
from django.views.decorators.vary import vary_on_cookie
from django.views.decorators.cache import cache_page
// 缓存30分钟
@cache_page(60 * 30)
@vary_on_cookie
def index(request):
pass
基于类的 API
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
from django.views.decorators.vary import vary_on_cookie
class UserViewSet(viewsets.ViewSet):
@method_decorator(cache_page(60*60*2))
@method_decorator(vary_on_cookie)
def list(self, request):
pass
清空缓存
如果想手动清空缓存,可以调用clear方法。
from django.core.cache import cache
cache.clear()
注意
- 正则表达式的不同匹配会单独缓存
path('groups/<int:id>', groups_views.group_view, name='group_view'),
groups/1
and groups/2
各自有不同的缓存
- 只有返回 200 的 GET 请求会被缓存
网友评论