Permalink
Fetching contributors…
Cannot retrieve contributors at this time
59 lines (41 sloc) 2.11 KB

Flask Extensions

Flask extensions extend the functionality of Flask in various different ways. For instance they add support for databases and other common tasks.

Finding Extensions

Flask extensions are listed on the Flask Extension Registry and can be downloaded with :command:`easy_install` or :command:`pip`. If you add a Flask extension as dependency to your :file:`requirements.txt` or :file:`setup.py` file they are usually installed with a simple command or when your application installs.

Using Extensions

Extensions typically have documentation that goes along that shows how to use it. There are no general rules in how extensions are supposed to behave but they are imported from common locations. If you have an extension called Flask-Foo or Foo-Flask it should be always importable from flask_foo:

import flask_foo

Building Extensions

While Flask Extension Registry contains many Flask extensions, you may not find an extension that fits your need. If this is the case, you can always create your own. Consider reading :ref:`extension-dev` to develop your own Flask extension.

Flask Before 0.8

If you are using Flask 0.7 or earlier the :data:`flask.ext` package will not exist, instead you have to import from flaskext.foo or flask_foo depending on how the extension is distributed. If you want to develop an application that supports Flask 0.7 or earlier you should still import from the :data:`flask.ext` package. We provide you with a compatibility module that provides this package for older versions of Flask. You can download it from GitHub: flaskext_compat.py

And here is how you can use it:

import flaskext_compat
flaskext_compat.activate()

from flask.ext import foo

Once the flaskext_compat module is activated the :data:`flask.ext` will exist and you can start importing from there.