From 82eca9190def86ad0e00411cd57c72a33f1bf102 Mon Sep 17 00:00:00 2001 From: Steven Loria Date: Sun, 8 Dec 2013 02:04:46 -0600 Subject: [PATCH] Add Flask-Cache --- README.rst | 4 +++- {{cookiecutter.repo_name}}/requirements/prod.txt | 3 +++ .../{{cookiecutter.repo_name}}/app.py | 4 +++- .../{{cookiecutter.repo_name}}/extensions.py | 7 ++++++- .../{{cookiecutter.repo_name}}/settings.py | 2 ++ 5 files changed, 17 insertions(+), 3 deletions(-) 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.