Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Dynamic blueprints flask pseudocode
import os
PATH = path/to/my/blueprints/directory
BLUEPRINT = 'the_blueprint'
def import_file(path, name=None):
""" imports a file with given name and path """
# use the imp module to do actual imports
import imp
name = name or os.path.split(path)[-1].replace(".", "_")
fp, pathname, description = imp.find_module(path)
return imp.load_module(name, fp, pathname, description)
def register_blueprints(app, files, blueprint_attribute):
""" registers the blueprints from a given set of files on the given app
app - the Flask application on which to register the blueprints
files - an iterable of file names to be dynamically imported
blueprint_attribute - the name of the actually blueprint in each file.
(e.g. for the flask blueprints example - - you'd
use 'simple_page')
imported_modules = [import_file(file) for file in files]
for module in imported_modules:
app.register(getattr(module, blueprint_attribute))
if __name__ == "__main__":
# get the files that end in py in the folder
filelist = (file for file in os.listdir(PATH) if file.endswith ".py")
from my_app import app
register_blueprints(app, filelist, BLUEPRINT)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment