Django 的缓存

2023-06-23  本文已影响0人  alue

利用缓存机制,能够有效的提升系统性能,是系统优化的重要套路。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()

注意

  1. 正则表达式的不同匹配会单独缓存
path('groups/<int:id>', groups_views.group_view, name='group_view'),

groups/1 and groups/2 各自有不同的缓存

  1. 只有返回 200 的 GET 请求会被缓存
上一篇 下一篇

猜你喜欢

热点阅读