Skip to main content

Simple as dead support of Redis database for Flask apps.

Project description

Simple as dead support of Redis database for Flask apps.

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)

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.3

  • Fix problem while parsing REDIS_URL value, strip unnecessary slashes from database path (like redis://localhost:6379/12/).

0.3.2

  • Checked compability with redis-py version 2.6.0.

  • Added redis as install requirement in setup.py.

0.3.1

  • Move from flask_redis package to python module.

  • Little improvements for storing _flask_app attribute to Redis instance.

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.

Project details


Download files

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

Source Distribution

Flask-And-Redis-0.3.3.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file Flask-And-Redis-0.3.3.tar.gz.

File metadata

File hashes

Hashes for Flask-And-Redis-0.3.3.tar.gz
Algorithm Hash digest
SHA256 41f55313a17d493099c3b6603dc016e3aa3b948f40ecb53f6e15ec5901d0aaf6
MD5 7c4bc7cd21691ab6bedb8dd7b646dd87
BLAKE2b-256 6fef44374ebb1be7b7f735b65407c20f75a6113e0683da0380046007a6059a65

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page