zoukankan      html  css  js  c++  java
  • Django视图中使用本地缓存

    Django服务器视图使用缓存可以大大减小服务器的压力,对数据实时性要求不高的场景使用缓存非常适合。

    使用Django本地缓存

    1. 在settings.py配置CACHES 

    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',  # 指定使用本地缓存
            'LOCATION': 'unique-data_center_LocMemCache',  
            'TIMEOUT': 300,  # 缓存超时时间(默认为300秒,None表示永不过期)
            'OPTIONS': {
                'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
                'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
            }
        }
    }

    2. 在视图中使用装饰器使用缓存

    @cache_page(15)
    def stock_detail(request, pk):
        tab_name = 'stock_' + pk
        stock_mod = new_stock(tab_name)
    
        # 查询
        if request.method == 'GET':
            limit = request.GET.get('limit')
            offset = request.GET.get('offset')
            total = stock_mod.objects.count()
    
            # 结果按日期降序排列
            datalist = stock_mod.objects.all().order_by('-trade_date')[int(offset): int(offset)+int(limit)]
            json_list = []
    
            import json
            # 返回json字符串
            for data in datalist:
                json_dict = model_to_dict(data)
                json_list.append(json_dict)
    
            result = dict()
            rows = list()
            result['total'] = total
            result['rows'] = json_list
    
            logger.info('获取股票列表')
            return JsonResponse(result, safe=False)
    @cache_page(15)指定缓存过期时间为15s,如果不指定,默认使用setting.py配置的缓存时间。
  • 相关阅读:
    css重点章节复习—布局-边框-边距-浮动 (部分)
    (重点章节复习以及代码调整笔记)选择器:伪类和伪元素选择器(部分)
    css015 定位网页上的元素
    css014 响应式web设计
    3.MFC基础(三)消息映射
    2.MFC基础(二)窗口创建
    1.MFC基础(一)程序流程
    27.windows线程
    26.windows进程
    25.windows内存管理
  • 原文地址:https://www.cnblogs.com/bryant24/p/11445769.html
Copyright © 2011-2022 走看看