plain.cache
A simple database-backed cache for storing JSON-serializable values with optional expiration.
The Plain Cache stores JSON-serializable values in a CachedItem model.
Cached data can be set to expire after a certain amount of time.
Access to the cache is provided through the Cached class.
from plain.cache import Cached
cached = Cached("my-cache-key")
if cached.exists():
print("Cache hit and not expired!")
print(cached.value)
else:
print("Cache miss!")
cached.set("a JSON-serializable value", expiration=60)
# Delete the item if you need to
cached.delete()
Expired cache items can be cleared by running chores.
CLI
plain cache clear-expired- Clear all expired cache itemsplain cache clear-all- Clear all cache itemsplain cache stats- Show cache statistics
Installation
Install the plain.cache package from PyPI:
uv add plain.cache
Add plain.cache to your INSTALLED_PACKAGES:
# app/settings.py
INSTALLED_PACKAGES = [
# ...
"plain.cache",
]
Run migrations to create the cache tables:
plain migrate