首页 > 其他 > 详细

Django视图中使用本地缓存

时间:2019-09-02 13:44:58      阅读:98      评论:0      收藏:0      [点我收藏+]

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配置的缓存时间。

 

Django视图中使用本地缓存

原文:https://www.cnblogs.com/bryant24/p/11445769.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!