zoukankan      html  css  js  c++  java
  • Django中的缓存的配置与使用

    一、使用装饰器

      在文件开头导入下面代码,然后在函数上方添加缓存的装饰器

    from django.views.decorators.cache import cache_page
    @cache_page(30)

    二、原生缓存

    Django中提供了6种缓存方式:

    • 开发调试
    • 内存
    • 文件
    • 数据库
    • Memcache缓存(python-memcached模块)
    • Memcache缓存(pylibmc模块)

    常用的缓存配置

    Memcache缓存

    首先要创建缓存表

    python manage.py createcachetable [table_name]
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
            'LOCATION': 'cache_table',
            'TIMEOUT': '60',
            'OPTIONS': {
                'MAX_ENTRIES': '300',
            },
            'KEY_PREFIX': 'rock',
            'VERSION': '1',
        }
    }
    View Code

    redis缓存

    首先要安装django-redis

    pip install django-redis
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/1",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        }
    }
    View Code

    代码实现示例:
    from django.forms import model_to_dict
    from django.http import JsonResponse
    from django.core.cache import cache
    from app.models import Engineer
    def my_cache_test(req):
        # 看缓存有没有数据
        res = cache.get('data')
        if res:return JsonResponse(res)
        else:
            # 查数据
            data = Engineer.objects.all()
            # 把对象转成字典
            # model_to_dict()
            c_data = []
         for i in data: c_data.append(model_to_dict(i)) result = {'my_data':c_data} # 设置缓存 cache.set('data',result,30) # 返回数据给前端 return JsonResponse(result)
    Fake it,till you make it
  • 相关阅读:
    go-micro registry 服务的注册和发现
    Element UI
    VUE常用插件和依赖的安装!
    Element dialog实现拖拽功能
    JAVA
    修改windows的host文件
    Vue
    Vue
    Vue
    Vue
  • 原文地址:https://www.cnblogs.com/wusir66/p/9878471.html
Copyright © 2011-2022 走看看