Как Django заставить хранить Session в словаре?

Для того чтобы заставить Django хранить сессии в виде словаря, а не в базе данных, необходимо настроить несколько параметров в файле настроек settings.py.

  1. Сначала нужно установить django-redis для того, чтобы использовать Redis в качестве хранилища сессий. Это можно сделать с помощью команды:
pip install django-redis
  1. Далее необходимо добавить Redis в качестве кэша в настройки Django. Для этого нужно добавить следующий код в settings.py:
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default'
  1. Теперь Django будет использовать Redis для хранения сессий. Можно убедиться в этом, создав новую сессию во view:
from django.http import HttpResponse

def set_session(request):
    request.session['my_key'] = 'my_value'
    return HttpResponse("Session value set")
  1. После этого значение my_key с ключом my_value будет храниться в Redis.

Таким образом, следуя этим шагам, вы настроите Django, чтобы он хранил сессии в виде словаря, используя Redis в качестве сервера хранения.