Flask-Servatus

Welcome to the Flask-Servatus documentation. Flask Servatus is a port of django storages system. Some of the features include

  • Configurable storage backends - Storage backends can be specified at runtime.
  • Built in support for local storage and s3 storage
  • Built in support SqlAlchemy - Provides a File type field that automatically saves and loads media content.

Quickstart

Warning

This package is under development. It is currently used in production but the API is currently subject to changes so users should use this package with caution.


1 Install Flask-Servatus via pip

$ pip install Flask-Servatus

2 Initialise and configure the Servatus application object

from flask import Flask
from flask.ext.servatus import Servatus

app = Flask(__name__)
servatus = Servatus(app)

#.init_app() interface is also availble..

def factory(arg, arg2):

    app = Flask(__name__)
    servatus = Servatus()
    servatus.init_app(app)

    return app

3 Use your prefered storages object to save files.

from flask import Flask
from flask.ext.servatus import Servatus
from flask.ext.servatus.files import ContentFile
from flask.ext.servatus.storages import get_default_storage

app = Flask(__name__)
servatus = Servatus(app)

storage = get_default_storage()

@app.route('/uploads', methods=['GET', 'POST'])
def handle_upload():
    # handle uploaded file from user subitted form..

    storage.save('foo.txt', request.files['file'])