标签:缓存 cache list 接口 BannerView Luffy banner response
Luffy /6/ 接口缓存
这里将banner图片作为缓存放入redis
视图
class BannerView(GenericViewSet,ListModelMixin):
# qs对象可以像列表一样,切片
queryset = Banner.objects.filter(is_delete=False, is_show=True).order_by('orders')[:settings.BANNER_COUNT]
serializer_class = BannerSerializer
def list(self, request, *args, **kwargs): # 重写list设置缓存
banner_list=cache.get('banner_cache_list')
if not banner_list: # 如果缓存中没有缓存,那么第一次走数据库,并放入缓存
response = super().list(request, *args, **kwargs)
print(response.data,'走了数据库')
cache.set('banner_cache_list',response.data)
else: # 缓存中有banner,走缓存
print('走了缓存')
response = Response(data=banner_list)
return response
路由
from django.urls import path, include
from rest_framework.routers import SimpleRouter
from .views import BannerView
router = SimpleRouter()
router.register('banner', BannerView, 'banner')
urlpatterns = [
path('', include(router.urls)),
]
标签:缓存,cache,list,接口,BannerView,Luffy,banner,response 来源: https://www.cnblogs.com/48xz/p/16216343.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。