Метод has_key
Метод has_key применяется к объекту кэша и возвращает
True, если ключ существует в кэше, и False
в противном случае. Этот метод полезен для проверки наличия
данных в кэше перед их извлечением, что позволяет избежать
лишних запросов к базе данных или тяжелых вычислений.
Метод принимает один обязательный аргумент - строковый ключ.
Синтаксис
cache.has_key(key)
Пример
Проверим существование ключа 'user_profile' в кэше:
from django.core.cache import cache
# Проверяем существование ключа
if cache.has_key('user_profile'):
# Извлекаем данные из кэша
profile = cache.get('user_profile')
print("Profile found in cache")
else:
# Загружаем данные из базы данных
profile = load_profile_from_db()
cache.set('user_profile', profile, timeout=3600)
print("Profile loaded from database")
Результат выполнения кода:
"Profile loaded from database"
Пример
Используем has_key для проверки наличия нескольких ключей:
from django.core.cache import cache
# Список ключей для проверки
keys = ['article_1', 'article_2', 'article_3']
for key in keys:
if cache.has_key(key):
print(f"{key} exists in cache")
else:
print(f"{key} not found in cache")
Результат выполнения кода:
"article_1 exists in cache"
"article_2 not found in cache"
"article_3 exists in cache"
Пример
Проверим ключ после его удаления методом delete:
from django.core.cache import cache
# Устанавливаем значение в кэше
cache.set('temp_data', 'value', timeout=60)
# Проверяем существование ключа
print(cache.has_key('temp_data'))
# Удаляем ключ
cache.delete('temp_data')
# Проверяем существование ключа после удаления
print(cache.has_key('temp_data'))
Результат выполнения кода:
"True"
"False"