Skip to content

Instantly share code, notes, and snippets.



Created Apr 9, 2014
What would you like to do?
# -*- coding: utf-8 -*-
core module, defines some extension instances etc.
from flask_sqlalchemy import SQLAlchemy
#: Flask-SQLAlchemy extension instance
db = SQLAlchemy()
# -*- coding: utf-8 -*-
factory module
import os
from flask import Flask
from .core import db
from .helpers import register_blueprints
def create_app(package_name, package_path, settings_override=None):
"""Returns a :class:`Flask` application instance"""
:param package_name: application package name
:param package_path: application package path
:param settings_override: a dictionary of settings to override
app = Flask(package_name, instance_relative_config=True)
app.config.from_pyfile('settings.cfg', silent=True)
register_blueprints(app, package_name, package_path)
return app
# -*- coding: utf-8 -*-
helpers module
import pkgutil
import importlib
from flask import Blueprint
def register_blueprints(app, package_name, package_path):
"""Register all Blueprint instances on the specified Flask application found
in all modules for the specified package.
:param app: the Flask application
:param package_name: the package name
:param package_path: the package path
rv = []
for _, name, _ in pkgutil.iter_modules(package_path):
m = importlib.import_module('%s.%s' % (package_name, name))
for item in dir(m):
item = getattr(m, item)
if isinstance(item, Blueprint):
return rv
# -*- coding: utf-8 -*-
settings module
DEBUG = True
SECRET_KEY = 'super-secret-key'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment