Skip to main content

Auto register all project flask-blueprints.

Project description

Upload Python Package Python application

Flask Blueprint autoinclude

A function to automatically register all flask-blueprints from a project.
register_blueprints from flask_bp_autoregister.blueprints


When using flask blueprints then after defining them you have to register them all this can possible look like this.

# in some config.py or __init__.py
def register_my_blueprints(used_flask_app: any):
    from my_app.views import home_views
    from my_app.views import package_views
    from my_app.views import account_views

    used_flask_app.register_blueprint(home_views.app_bp)
    used_flask_app.register_blueprint(package_views.app_bp)
    used_flask_app.register_blueprint(account_views.app_bp) 

# and then in your run.py or similar

from my_app import flask_app
from my_app import register_my_blueprints

register_my_blueprints(flask_app)

if __name__ == '__main__':
    flask_app.run()

The register_blueprints code can get really long and you always have to remember where your blueprints are.


For this is had created a function register_blueprints which automatically will search for all blueprints in your project and register them.

from my_app import flask_app
from flask_bp_autoregister.blueprints import register_blueprints


register_blueprints(flask_app, 'my_project/src/my_app')


if __name__ == '__main__':
    flask_app.run()

The path attribute is not really needed you can also use it without then all blueprints inside of the project will be registered automatically

from my_app import flask_app
from flask_bp_autoregister.blueprints import register_blueprints


register_blueprints(flask_app)


if __name__ == '__main__':
    flask_app.run()

When you have some commented Blueprints inside of your project, register_blueprints will try to register them too
which will raise an AttributeError you can disable this with silent=True

from my_app import flask_app
from flask_bp_autoregister.blueprints import register_blueprints


register_blueprints(flask_app, silent=True) # will prevent raising AttributeError


if __name__ == '__main__':
    flask_app.run()

Tested for Versions

  • 3.6, 3.7, 3.8

Installing

Versioning

  • For the versions available, see the tags on this repository.

Authors

  • Felix Eisenmenger - Initial work

License

  • This project is licensed under the MIT License - see the LICENSE.md file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autoinclude_blueprints-1.0.1.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

autoinclude_blueprints-1.0.1-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page