Skip to content
This repository has been archived by the owner on Sep 15, 2021. It is now read-only.

Latest commit

 

History

History
48 lines (34 loc) · 1.42 KB

README.rst

File metadata and controls

48 lines (34 loc) · 1.42 KB

Flask-Failsafe

A failsafe for the Flask reloader.

https://travis-ci.org/mgood/flask-failsafe.png

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, 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()