flask-failsafe
flask-failsafe copied to clipboard
A failsafe for the Flask reloader
Flask-Failsafe
A failsafe for the Flask reloader.
.. image:: https://travis-ci.org/mgood/flask-failsafe.png :target: https://travis-ci.org/mgood/flask-failsafe
The Flask reloader works great until you make a syntax error and it fails importing your app. This extension helps keep you working smoothly by catching errors during the initialization of your app, and provides a failsafe fallback app to display those startup errors instead.
To use it, run your app via a small script script with a factory function to initialize your app::
from flask_failsafe import failsafe
@failsafe def create_app(): # note that the import is inside this function so that we can catch # errors that happen at import time from myapp import app return app
if name == "main": create_app().run()
The @failsafe
decorator catches any errors calling create_app()
and
returns a fallback app that will instead display the Flask error debugger.
If you use Flask-Script <http://flask-script.readthedocs.org>
_, you can pass
the same @failsafe
-decorated factory function to the Manager()
class::
from flask.ext.script import Manager, Server from flask_failsafe import failsafe
@failsafe def create_app(): from myapp import app return app
manager = Manager(create_app) manager.add_command("runserver", Server())
if name == "main": manager.run()