from flask import Flask from .config import config from .db import initialize as initialize_db from .views import api def create(config_obj=None): """ Create an instance of the Flask application. This pattern of creating the application within a function and registering blueprints makes writing tests easier since you can create several application objects with different configurations. Args: config_obj (object): A module or object with configuration options attached to it. See the `Flask configuration documentation`_ for usage details. Returns: flask.Flask: The configured Flask application. .. _Flask configuration documentation: http://flask.pocoo.org/docs/latest/api/#flask.Config.from_object """ app = Flask(__name__) if config_obj: app.config.from_object(config_obj) else: app.config.update(config.load_config()) initialize_db(app.config) app.register_blueprint(api.api_blueprint, url_prefix="/api/v1") return app