Files
chunyu_project/currency/cache.py
T
2026-08-05 23:59:15 +08:00

29 lines
802 B
Python

import json
import hashlib
from django.core.cache import caches
_cache = caches['default']
CACHE_TIMEOUT = 900
def _make_cache_key(prefix, *args, **kwargs):
raw = json.dumps({'args': args, 'kwargs': kwargs}, sort_keys=True, default=str)
suffix = hashlib.md5(raw.encode('utf-8')).hexdigest()
return f'currency_{prefix}_{suffix}'
def get_cached_data(prefix, *args, **kwargs):
cache_key = _make_cache_key(prefix, *args, **kwargs)
return _cache.get(cache_key)
def set_cached_data(prefix, data, *args, timeout=CACHE_TIMEOUT, **kwargs):
cache_key = _make_cache_key(prefix, *args, **kwargs)
_cache.set(cache_key, data, timeout=timeout)
def delete_cached_data(prefix, *args, **kwargs):
cache_key = _make_cache_key(prefix, *args, **kwargs)
_cache.delete(cache_key)