Usage#

Quickstart#

Create your Flask application, load the configuration of choice, and then create the Session object by passing it the application.

from flask import Flask, session
from flask_session import Session

app = Flask(__name__)

SESSION_TYPE = 'redis'
SESSION_REDIS = Redis(host='localhost', port=6379)
app.config.from_object(__name__)
Session(app)

@app.route('/set/')
def set():
    session['key'] = 'value'
    return 'ok'

@app.route('/get/')
def get():
    return session.get('key', 'not set')

See the configuration section for more details.

Note

You can not use Session instance directly, what Session does is just change the session_interface attribute on your Flask applications. You should always use flask.session when accessing or modifying the current session.

Alternative initialization#

Rather than calling Session, you may initialize later using init_app().

...
sess = Session()
sess.init_app(app)

Or, if you prefer to directly set parameters rather than using the configuration constants, you can initialize by setting an instance of flask_session.redis.RedisSessionInterface directly to the flask.Flask.session_interface.

from flask import Flask, session
from flask_session.redis import RedisSessionInterface
from redis import Redis

app = Flask(__name__)

redis = Redis(host='localhost', port=6379)
app.session_interface = RedisSessionInterface(client=redis)

Using CacheLib as a session backend#

Note

FileSystemSession was recently deprecated in favor of CacheLib, which is what is was using under the hood.

The following example demonstrates how to use CacheLib as a session backend with the file system cache. This might be useful for rapid development or testing.

from flask import Flask, session
from flask_session import Session
from cachelib.file import FileSystemCache

app = Flask(__name__)

SESSION_TYPE = 'cachelib'
SESSION_SERIALIZATION_FORMAT = 'json'
SESSION_CACHELIB = FileSystemCache(threshold=500, cache_dir="/sessions"),
app.config.from_object(__name__)
Session(app)