Luffy /6/ 接口缓存

x33g5p2x  于2022-05-05 转载在 其他  
字(0.8k)|赞(0)|评价(0)|浏览(455)


接口缓存

Luffy /6/ 接口缓存

这里将banner图片作为缓存放入redis

视图

  1. class BannerView(GenericViewSet,ListModelMixin):
  2. # qs对象可以像列表一样,切片
  3. queryset = Banner.objects.filter(is_delete=False, is_show=True).order_by('orders')[:settings.BANNER_COUNT]
  4. serializer_class = BannerSerializer
  5. def list(self, request, *args, **kwargs): # 重写list设置缓存
  6. banner_list=cache.get('banner_cache_list')
  7. if not banner_list: # 如果缓存中没有缓存,那么第一次走数据库,并放入缓存
  8. response = super().list(request, *args, **kwargs)
  9. print(response.data,'走了数据库')
  10. cache.set('banner_cache_list',response.data)
  11. else: # 缓存中有banner,走缓存
  12. print('走了缓存')
  13. response = Response(data=banner_list)
  14. return response

路由

  1. from django.urls import path, include
  2. from rest_framework.routers import SimpleRouter
  3. from .views import BannerView
  4. router = SimpleRouter()
  5. router.register('banner', BannerView, 'banner')
  6. urlpatterns = [
  7. path('', include(router.urls)),
  8. ]

相关文章