GithubHelp home page GithubHelp logo

flask-redis's Introduction

flask-redis

CircleCI codecov Codacy Badge GitHub tag (latest SemVer)

PyPI - Python Version Flask version support is 0.9+ redis-py version support is 2.6+ Code style: black

A nice way to use Redis in your Flask app.

Configuration

Start by installing the extension with pip install flask-redis. Once that's done, configure it within your Flask config. Set the URL of your Redis instance like this:

REDIS_URL = "redis://:password@localhost:6379/0"

If you wanna connect to a Unix socket, you can specify it like "unix://:password@/path/to/socket.sock?db=0".

Usage

Setup

To add a Redis client to your application:

from flask import Flask
from flask_redis import FlaskRedis

app = Flask(__name__)
redis_client = FlaskRedis(app)

or if you prefer, you can do it the other way around:

redis_client = FlaskRedis()
def create_app():
    app = Flask(__name__)
    redis_client.init_app(app)
    return app

The FlaskRedis client here will pass its keyword arguments to the Redis class from the redis-py library, so all parameters from the Redis documentation page will work here as well โ€” such as socket_timeout and encoding.

Accessing Redis

Access is done by using FlaskRedis as if it was a Redis class as well:

from my_app import redis_client

@app.route('/')
def index():
    return redis_client.get('potato')

For detailed instructions on what methods you can use on the client, as well as how you can use advanced features such as Lua scripting, pipelines, and callbacks, please check the redis-py documentation.

Pro-tip: The redis-py package uses the redis namespace, so it's nicer to name your Redis object something like redis_client instead of just redis.

Extra features in flask-redis

Custom providers

Instead of the default Redis client from redis-py, you can provide your own. This can be useful to replace it with mockredis for testing:

from flask import Flask
from flask_redis import FlaskRedis
from mockredis import MockRedis


def create_app():
    app = Flask(__name__)
    if app.testing:
        redis_store = FlaskRedis.from_custom_provider(MockRedis)
    else:
        redis_store = FlaskRedis()
    redis_store.init_app(app)
    return app

Contributing

  1. Check for open issues or open a fresh issue to start a discussion
  2. Fork the repository on GitHub.
  3. Send a pull request with your code!

Merging will require a test which shows that the bug was fixed, or that the feature works as expected. Feel free to open a draft pull request though without such a test and ask for help with writing it if you're not sure how to.

As Bence (the only maintainer) works full-time, please allow some time before your issue or pull request is handled.

flask-redis's People

Contributors

alexraileanu avatar ariscn avatar duncanbetts avatar giyyapan avatar gricey432 avatar lyschoening avatar plaes avatar qaisjp avatar rhyselsmore avatar semgrep-bot avatar thekuffs avatar underyx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.