Flask extension development guide
(http://flask.pocoo.org/docs/extensiondev/#the-extension-code)
suggests using current_app instead of storing app on self during initialisation.
Here's citation:
Note on ``init_app``
As you noticed, ``init_app`` does not assign ``app`` to ``self``. This
is intentional! Class based Flask extensions must only store the
application on the object when the application was passed to the
constructor. This tells the extension: I am not interested in using
multiple applications.
When the extension needs to find the current application and it does
not have a reference to it, it must either use the
:data:`~flask.current_app` context local or change the API in a way
that you can pass the application explicitly.