Skip to content
This repository has been archived by the owner on Dec 13, 2020. It is now read-only.

Redis support for Flask without breaking PyCharm inspections.

License

Notifications You must be signed in to change notification settings

Robpol86/Flask-Redis-Helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flask-Redis-Helper

Yet another Redis extension for Flask. Flask-Redis-Helper doesn't break PyCharm autocomplete/inspections and handles the Flask application context the same way SQLAlchemy does.

  • Python 2.6, 2.7, PyPy, PyPy3, 3.3, and 3.4 supported on Linux and OS X.
  • Python 2.7, 3.3, and 3.4 supported on Windows (both 32 and 64 bit versions of Python).

Tested on Windows XP and Windows 10 technical preview.

Build Status Windows Build Status Coverage Status Latest Version Downloads

Attribution

Inspired by Flask-SQLAlchemy and Flask-And-Redis.

Supported Libraries

Quickstart

Install:

pip install Flask-Redis-Helper

Examples

Basic Example

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

app = Flask(__name__)
app.config['REDIS_URL'] = 'redis://localhost'
redis = Redis(app)

Factory Example

# extensions.py
from flask.ext.redis import Redis

redis = Redis()
redis_cache = Redis()
# application.py
from flask import Flask
from extensions import redis, redis_cache

def create_app():
    app = Flask(__name__)
    app.config['REDIS_URL'] = 'redis://localhost/0'
    app.config['REDIS_CACHE_URL'] = 'redis://localhost/1'
    redis.init_app(app)
    redis_cache.init_app(app, config_prefix='REDIS_CACHE')
    return app
# manage.py
from application import create_app

app = create_app()
app.run()

Configuration

Flask-Redis-Helper subclasses StrictRedis and adds the init_app() method for delayed initialization (for applications that instantiate extensions in a separate file, but run init_app() in the same file Flask() was instantiated).

The following config settings are searched for in the Flask application's configuration dictionary:

  • REDIS_URL -- URL to Redis server. May be a network URL or Unix socket URL. Individual components may be overridden by settings below (like setting REDIS_DB). URLs must start with redis://, file://, or redis+socket:// (Celery compatibility). redis:// handles ambiguous URLs (like redis://localhost and redis://my_socket_file) by prioritizing network URL interpretations over socket URLs. Use the file:// or redis+socket:// URL schemes to force socket URL interpretations over network URLs.
  • REDIS_SOCKET -- UNIX socket file path. If specified, disables REDIS_HOST and REDIS_PORT settings.
  • REDIS_HOST -- the Redis server's hostname/IP. Default is localhost.
  • REDIS_PORT -- TCP port number. Default is 6379.
  • REDIS_PASSWORD -- password. Default is None.
  • REDIS_DB -- DB instance (e.g. 1). Must be an integer. Default is 0.

Changelog

This project adheres to Semantic Versioning.

1.0.0 - 2014-12-22

Added
  • Windows support.
Removed
  • Dependency on six.

0.1.3 - 2014-08-24

Added
  • Support trailing slashes.

0.1.2 - 2014-08-10

Changed
  • Minor code restructuring.

0.1.1 - 2014-07-14

Added
  • Python 2.6 and 3.x support.

0.1.0 - 2014-06-01

  • Initial release.

About

Redis support for Flask without breaking PyCharm inspections.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages