Flask-Compress allows you to easily compress your Flask application’s responses with gzip.
The preferred solution is to have a server (like Nginx) automatically compress the static files for you. If you don’t have that option Flask-Compress will solve the problem for you.
How it works¶
Flask-Compress both adds the various headers required for a compressed response and gzips the response data. This makes serving gzip compressed static files extremely easy.
Internally, every time a request is made the extension will check if it matches one of the compressible MIME types and automatically attach the appropriate headers.
If you use pip then installation is simply:
> pip install flask-compress
or, if you want the latest github version:
> pip install git+git://github.com/wichitacode/flask-compress.git
You can also install Flask-Compress via Easy Install:
> easy_install flask-compress
Flask-Compress is incredibly simple to use. In order to start gzip’ing your
Flask application’s assets, the first thing to do is let Flask-Compress know
flask.Flask application object.
from flask import Flask from flask.ext.compress import Compress app = Flask(__name__) Compress(app)
In many cases, however, one cannot expect a Flask instance to be ready
at import time, and a common pattern is to return a Flask instance from
within a function only after other configuration details have been taken
care of. In these cases, Flask-Compress provides a simple function,
init_app, which takes your application as an argument.
from flask import Flask from flask.ext.compress import Compress compress = Compress() def start_app(): app = Flask(__name__) compress.init_app(app) return app
In terms of automatically compressing your assets using gzip, passing your
Flask object to the
Compress object is all that needs to be done.
Within your Flask application’s settings you can provide the following settings to control the behaviour of Flask-Compress. None of the settings are required.
||Set the list of mimetypes to compress here.
||Specifies the gzip compression level.
||Specifies the minimum file size threshold for
Flask-Compress is a very simple extension. The few exposed objects, methods and functions are as follows.
The Compress Object¶
The Compress object allows your application to use Flask-Compress.
Parameters: app (
flask.Flaskor None) – optional