Skip to content

playpauseandstop/Flask-And-Redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flask-And-Redis

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.

About

Simple as dead support of Redis database for Flask applications

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy