diff --git a/README.rst b/README.rst
index d00044a..d8e742e 100644
--- a/README.rst
+++ b/README.rst
@@ -23,9 +23,10 @@ Features
- Flask-WTForms with login and registration forms
- Flask-Login for authentication
- Procfile for deploying to a PaaS (e.g. Heroku)
-- Flask-Testing, Flask-Webtest, nose, and Factory-Boy for testing
+- Flask-Testing, Flask-Webtest, nose, and Factory-Boy for testing (example tests included)
- A simple ``manage.py`` script.
- CSS and JS minification using Flask-Assets
+- Caching using Flask-Cache
- Useful debug toolbar
- Utilizes best practices: `Blueprints `_ and `Application Factory `_ patterns
@@ -73,6 +74,7 @@ Changelog
- Use WebTest for functional testing.
- Add Flask-Debugtoolbar.
- Migrations using Flask-Migrate.
+- Caching using Flask-Cache.
0.2.0 (09/21/2013)
******************
diff --git a/{{cookiecutter.repo_name}}/requirements/prod.txt b/{{cookiecutter.repo_name}}/requirements/prod.txt
index 999121b..c42b7ac 100644
--- a/{{cookiecutter.repo_name}}/requirements/prod.txt
+++ b/{{cookiecutter.repo_name}}/requirements/prod.txt
@@ -30,3 +30,6 @@ jsmin>=2.0.4
# Auth
Flask-Login>=0.2.7
Flask-Bcrypt>=0.5.2
+
+# Caching
+Flask-Cache>=0.12
diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/app.py b/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/app.py
index 5a70211..d45a183 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/app.py
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/app.py
@@ -4,7 +4,8 @@ from flask_debugtoolbar import DebugToolbarExtension
from {{cookiecutter.repo_name}}.settings import ProdConfig
from {{cookiecutter.repo_name}}.assets import assets
-from {{cookiecutter.repo_name}}.extensions import db, login_manager, migrate
+from {{cookiecutter.repo_name}}.extensions import (db, login_manager, migrate,
+ cache)
from {{cookiecutter.repo_name}} import public, user
@@ -26,6 +27,7 @@ def register_extensions(app):
login_manager.init_app(app)
assets.init_app(app)
toolbar = DebugToolbarExtension(app)
+ cache.init_app(app)
migrate.init_app(app, db)
return None
diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/extensions.py b/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/extensions.py
index 2332453..a9dc6b7 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/extensions.py
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/extensions.py
@@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
-"""Extensions module."""
+"""Extensions module. Each extension is initialized in the app factory located
+in app.py
+"""
from flask.ext.bcrypt import Bcrypt
bcrypt = Bcrypt()
@@ -12,3 +14,6 @@ db = SQLAlchemy()
from flask.ext.migrate import Migrate
migrate = Migrate()
+
+from flask.ext.cache import Cache
+cache = Cache()
diff --git a/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/settings.py b/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/settings.py
index c656130..3e007b6 100644
--- a/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/settings.py
+++ b/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/settings.py
@@ -9,6 +9,7 @@ class Config(object):
BCRYPT_LEVEL = 13
DEBUG_TB_ENABLED = False # Disable Debug toolbar
DEBUG_TB_INTERCEPT_REDIRECTS = False
+ CACHE_TYPE = "simple" # Can be "memcached", "redis", etc.
class ProdConfig(Config):
@@ -31,3 +32,4 @@ class DevConfig(Config):
SQLALCHEMY_ECHO = True
DEBUG_TB_ENABLED = True
ASSETS_DEBUG = True # Don't bundle/minify static assets
+ CACHE_TYPE = "simple" # Can be "memcached", "redis", etc.