A simple page cache for Wagtail based on the Django cache middleware.
Documentation | Source code on GitHub
Python Package | |
Build |
Follow the Installation Guide
Django has a robust cache middleware that already has the functionality needed to cache web pages effectively. But turning the cache middleware on will blindly cache every request and does not work well with a wagtail site.
Wagtail Cache provides a decorator that works well with wagtail pages to appropriately cache and serve them similar to Django's cache middleware.
The end result is ultra-fast page serving that requires zero database hits to serve cached pages. Other solutions such as template caching still require database hits for wagtail to serve a page.
This cache feature was originally part of coderedcms and has been split out into this separate package. Wagtail Cache is tried and tested, and is in use successfully on many live production sites.
To set up your development environment:
- Create a new environment:
python -m venv ~/Envs/wagtail-cache
# Mac and Linux
source ~/Envs/wagtail-cache/bin/activate
# Windows (PowerShell)
~/Envs/wagtail-cache/Scripts/Activate.ps1
- Enter the source code directory and install the package locally with additional development tools:
pip install -e ./[dev]
-
Write some code.
-
Next, run the static analysis tools (
flake8
andmypy
)
flake8 ./wagtailcache/
mypy ./wagtailcache/
- Next, run the units tests. A simple Wagtail project using Wagtail Cache is
in the
testproject/
directory. The tests will generate a visual HTML file athtmlcov/index.html
when finished, which you can open in your browser.
pytest ./testproject/
- To build the documentation, run the following, which will output to the
docs/_build/html/
directory.
sphinx-build -M html ./docs/ ./docs/_build/ -W
- To create a python package, run the following, which will output the package
to the
dist/
directory.
python setup.py sdist bdist_wheel