Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Simple as dead support of Redis database for Flask apps.

Project Description

Simple as dead support of Redis database for Flask apps.

Note

I named this Flask-And-Redis, cause Flask-Redis name already taken, but that library didn’t match my needs.

Requirements

Installation

$ pip install Flask-And-Redis

License

Flask-And-Redis is licensed under the BSD License.

Configuration

As of py-redis 2.4.11 release you should setup next options in your settings module:

  • REDIS_HOST
  • REDIS_PORT
  • REDIS_DB
  • REDIS_PASSWORD
  • REDIS_SOCKET_TIMEOUT
  • REDIS_CONNECTION_POOL
  • REDIS_CHARSET
  • REDIS_ERRORS
  • REDIS_UNIX_SOCKET_PATH

Then all of these args would be sent to redis.Redis.__init__ method.

You also could pass app into initialized instance afterwards with init_app method:

from flask import Flask
from flask.ext.redis import Redis


app = Flask(__name__)

redis = Redis()
redis.init_app(app)

Warning

Please note, if you’ll initialize extension that way, make sure that before init_app call all real Redis method’s would be return AttributeError exception cause of no connection_pool attribute, which setup on redis.Redis instance init.

Advanced

Some times, your redis setting stored as redis://... url (like in Heroku or DotCloud services), sou you could to provide just REDIS_URL value and Flask-And-Redis auto parsed that url and configured then valid redis connection.

Usage

Basic

from flask import Flask
from flask.ext.redis import Redis


app = Flask(__name__)
redis = Redis(app)

Test application

testapp/app.py

from flask import Flask, redirect, url_for
from flask.ext.redis import Redis

from testapp import settings


# Initialize simple Flask application
app = Flask(__name__)
app.config.from_object(settings)

# Setup Redis conection
redis = Redis(app)

# Add two simple views: One for forgetting counter
@app.route('/forget-us')
def forget_us():
    key = app.config['COUNTER_KEY']
    redis.delete(key)
    return redirect(url_for('home'))


# Second for remembering visiting counter
@app.route('/')
def home():
    key = app.config['COUNTER_KEY']
    counter = redis.incr(key)
    message = 'Hello, visitor!'

    if counter != 1:
        message += "\nThis page viewed %d time(s)." % counter

    return message

testapp/settings.py

COUNTER_KEY = 'testapp:counter'
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DB = 0
# REDIS_URL = 'redis://localhost:6379/0'

Bugs, feature requests?

If you found some bug in Flask-And-Redis library, please, add new issue to the project’s GitHub issues.

Changelog

0.3

  • Implement init_app method.

0.2.1

  • Convert REDIS_PORT to an int instance.

0.2

  • Added support of REDIS_URL setting. By default, Redis will try to guess host, port, user, password and db settings from that value.

0.1

  • Initial release.
Release History

Release History

History Node

0.7

History Node

0.6

History Node

0.5

History Node

0.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

This version
History Node

0.3

History Node

0.2.1

History Node

0.2

History Node

0.1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
Flask-And-Redis-0.3.tar.gz (4.7 kB) Copy SHA256 Checksum SHA256 Source May 21, 2012

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting