РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
675 of 818 menu

Метод set_many

Метод set_many применяется к объекту кэша Django и позволяет установить сразу несколько ключей и соответствующих им значений в кэш за один вызов. В качестве аргументов метод принимает словарь, где ключи - это строки-идентификаторы, а значения - данные для кэширования. Дополнительно можно указать время жизни ключей и таймаут.

Синтаксис

cache.set_many(dict, timeout=None, version=None)

Параметры

Метод принимает следующие параметры:

dict - обязательный параметр, словарь с ключами и значениями для установки в кэш.

timeout - необязательный параметр, время жизни ключей в секундах. Если не указан, используется значение по умолчанию из настроек кэша.

version - необязательный параметр, версия ключей кэша. Позволяет управлять версионированием данных в кэше.

Пример

Давайте установим несколько значений в кэш с помощью метода set_many:

from django.core.cache import cache data = { 'user_1_name': 'John', 'user_1_age': 25, 'user_1_city': 'New York', } cache.set_many(data) res = cache.get_many(['user_1_name', 'user_1_age', 'user_1_city']) print(res)

Результат выполнения кода:

{ 'user_1_name': 'John', 'user_1_age': 25, 'user_1_city': 'New York' }

Пример

Давайте установим значения в кэш с указанием времени жизни в 60 секунд:

from django.core.cache import cache articles = { 'article_1': 'Django basics', 'article_2': 'Cache system', 'article_3': 'ORM queries', } cache.set_many(articles, timeout=60) res = cache.get_many(['article_1', 'article_2', 'article_3']) print(res)

Результат выполнения кода:

{ 'article_1': 'Django basics', 'article_2': 'Cache system', 'article_3': 'ORM queries' }

Пример

Давайте используем метод set_many с указанием версии кэша:

from django.core.cache import cache settings = { 'debug_mode': True, 'api_enabled': True, 'maintenance_mode': False, } cache.set_many(settings, timeout=300, version=2) res = cache.get_many(['debug_mode', 'api_enabled', 'maintenance_mode'], version=2) print(res)

Результат выполнения кода:

{ 'debug_mode': True, 'api_enabled': True, 'maintenance_mode': False }

Пример

Давайте сохраним в кэш данные из модели с помощью метода set_many:

from django.core.cache import cache from myapp.models import Article articles = Article.objects.all() cache_data = {} for article in articles: cache_data[f'article_{article.id}'] = article.title cache.set_many(cache_data, timeout=120) res = cache.get_many(['article_1', 'article_2', 'article_3']) print(res)

Результат выполнения кода:

{ 'article_1': 'First article', 'article_2': 'Second article', 'article_3': 'Third article' }

Смотрите также

  • метод get_many,
    который получает несколько ключей из кэша
  • метод set,
    который устанавливает один ключ в кэш
  • метод delete_many,
    который удаляет несколько ключей из кэша
  • метод get,
    который получает один ключ из кэша
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить