当前位置: 首页 > news >正文

固原网站建设赣州经济

固原网站建设,赣州经济,html网站模板免费下载,汽车网站建设工作室Django REST framework 实现缓存机制以优化性能 页面首页中#xff0c;导航菜单或轮播广告在项目中每一个页面都会被用户频繁访问到#xff0c;所以我们可以实现缓存#xff0c;减少MySQL数据库的查询压力#xff0c;使用内存缓存可以加快数据查询速度。 cache_page 装饰…Django REST framework 实现缓存机制以优化性能 页面首页中导航菜单或轮播广告在项目中每一个页面都会被用户频繁访问到所以我们可以实现缓存减少MySQL数据库的查询压力使用内存缓存可以加快数据查询速度。 cache_page 装饰器 根据django官方文档 试图缓存https://docs.djangoproject.com/zh-hans/5.0/topics/cache/#the-per-view-cache 示例 使用缓存框架的通用办法是缓存视图结果。django.views.decorators.cache 定义了一个 cache_page 装饰器它将自动缓存视图的响应 from django.views.decorators.cache import cache_pagecache_page(60 * 15) def my_view(request): ...method_decorator与 装饰器 装饰类视图https://docs.djangoproject.com/zh-hans/3.2/topics/class-based-views/intro/#decorating-the-class 装饰器语法直接装饰器 直接应用装饰器直接应用于函数或方法的定义上。作用域装饰器的作用域仅限于被装饰的函数或方法。继承性如果一个方法被装饰那么它的直接子类继承该方法时不会自动继承装饰器。子类需要显式地添加相同的装饰器。可读性代码更直观因为装饰器直接位于方法定义之前易于理解和追踪。限制如果需要在继承链中多个级别应用相同的装饰器需要在每个类中重复相同的装饰器代码。 method_decorator类级别装饰器 动态应用装饰器在类定义之后、方法定义之前动态应用。作用域可以为类中的一个或多个方法添加装饰器。继承性通过 method_decorator 应用的装饰器会被所有继承该类的子类继承无需在子类中重复添加。灵活性可以在不修改原始方法定义的情况下为类的方法添加装饰器。复杂性可能稍微降低代码的可读性因为装饰器的应用与方法定义分离。 代码实现 前提是的settings中配置好了CACHE from django.utils.decorators import method_decorator from django.views.decorators.cache import cache_page from rest_framework.generics import ListAPIView import constantsclass CacheListAPIView(ListAPIView):列表缓存视图method_decorator(cache_page(time_outconstants.LIST_PAGE_CACHE_TIME))def get(self,request, *args, **kwargs):# 重写ListAPIView的get方法但是不改动源代码。仅仅装饰而已return super().get(request, *args, **kwargs)此时主页视图中的头部脚部轮播图等api接口都可以继承该类实现缓存 import constants from views import CacheListAPIView from .models import Nav, Banner from .serializers import NavModelSerializer, BannerModelSerializerclass NavHeaderListAPIView(CacheListAPIView):顶部导航视图queryset Nav.objects.filter(positionconstants.NAV_HEADER_POSITION, is_showTrue, is_deletedFalse).order_by(orders, -id)[:constants.NAV_HEADER_SIZE]serializer_class NavModelSerializerclass NavFooterListAPIView(CacheListAPIView):脚部导航视图queryset Nav.objects.filter(positionconstants.NAV_FOOTER_POSITION, is_showTrue, is_deletedFalse).order_by(orders, -id)[:constants.NAV_FOOTER_SIZE]serializer_class NavModelSerializerclass BannerListAPIView(CacheListAPIView):轮播广告视图queryset Banner.objects.filter(is_showTrue, is_deletedFalse).order_by(orders, -id)[:constants.BANNER_SIZE]serializer_class BannerModelSerializer此时访问试图后缓存数据库中就有缓存好的信息了。 若有错误与不足请指出关注DPT一起进步吧
http://www.w-s-a.com/news/242758/

相关文章:

  • 网站建设哪里有学网页界面设计论文
  • 怎么做外贸网站推广劳务公司网站怎么做
  • 滴答手表网站中铁建设集团有限公司招聘信息2021
  • 重庆富通科技有限公司网站新闻头条最新消息国家大事
  • 四字母net做网站怎么样企业代运营公司
  • 纪检网站建设方案wordpress首页静态页面
  • 网站右下角浮动效果如何做网站logo设计在线生成
  • 西宁哪里做网站婚纱摄影网站设计思路
  • 凡科用模板做网站网站导入页欣赏
  • 北京响应式网站建设公司十大小程序开发公司
  • dw网站开发删除wordpress主题底部
  • 织梦网站怎样做子域名高德导航怎么看街景地图
  • 宿州专业网站建设株洲网站建设优化
  • 自动生成海报的网站常州建网站公司
  • 网站刷流量对网站有影响吗站长工具欧美高清
  • 百度做网站优化多少钱一年罗庄网站建设
  • 手机网站 自适应屏幕h5网站有哪些
  • 北京企业建站技术临沂网站公众号建设
  • 域名和网站备案一样吗wordpress 封装 app
  • 婚纱摄影网站开题报告c2c模式是什么意思
  • 网站几种颜色wordpress水平菜单
  • php做网站的分站wordpress边下边看
  • 杭州建设实名制报备网站Wordpress外贸网站搭建公司
  • 山西云起时网站建设计算机网站开发实现总结
  • 一个网站做两个优化可以做吗永清网站建设
  • wordpress英文采集wordpress seo 链接
  • 进入建设银行的网站就打不了字工程建设标准化网站
  • 杭州网站推广大全网站建设演讲稿
  • 厦门网站的制作太仓专业网站建设
  • 天津公司网站建设公司哪家好在阿里巴巴国际网站上需要怎么做