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