Skip to main content

Import and register all Flask Blueprints (including nested) from a package directory.

Project description

Flask Blueprint Autoimporter

flask-blueprints will import and register all nested Flask Blueprints under a given package directory.

Synopsis

Register all Flask Blueprints (including nested) from a package directory.

Usage

Create an empty package app.blueprints and register your blueprints:

from flask import Flask
from flask_blueprints import register_blueprints


app = Flask(__name__)
register_blueprints(app, 'app.blueprints')

Blueprints can now be placed under this package, as such:

.
└── app
    ├── blueprints
    │   ├── account
    │   │   ├── account.py
    │   │   ├── contact
    │   │   │   ├── contact.py
    │   │   │   └── __init__.py
    │   │   └── __init__.py
    │   ├── api
    │   │   ├── account
    │   │   │   ├── account.py
    │   │   │   ├── contact
    │   │   │   │   ├── contact.py
    │   │   │   │   └── __init__.py
    │   │   │   └── __init__.py
    │   │   ├── __init__.py
    │   │   └── user
    │   │       ├── __init__.py
    │   │       └── tribute.py
    │   ├── __init__.py
    │   └── project
    │       ├── documents.py
    │       ├── __init__.py
    │       ├── project.py
    │       └── search.py
    └── __init__.py

Blueprint __init__.py files should look something like the following:

from flask import Blueprint


bp = Blueprint('project', __name__)
from . import documents
from . import project
from . import search

(Note that the top-level app/blueprints/__init__.py is not a blueprint package, and therefore should not have a blueprint defined.)

The blueprint files themselves can then define the routes. For example:

from flask import redirect, url_for
from . import bp

@bp.post('/project/<int:project_id>/store')
def store(project_id):
	# ...
	return redirect(url_for('project.show', project_id=project_id))

If the blueprint variable is not bp, then this can be customised:

register_blueprints(app, 'app.blueprints', bp='bp')

Further Reading

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

flask-blueprints-0.0.6.tar.gz (3.3 kB view hashes)

Uploaded Source

Built Distribution

flask_blueprints-0.0.6-py3-none-any.whl (3.6 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