import os from flask import Flask from psycopg2 import pool, OperationalError import artist import config import logging import main from db import DB def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) if test_config is None: app.config.from_object(config.runtime_config()) else: app.config.from_mapping(test_config) try: os.makedirs(app.instance_path) except OSError: pass app.register_blueprint(artist.bp) app.register_blueprint(main.bp) if DB.connection_pool is None: try: DB.connection_pool = pool.ThreadedConnectionPool( 1, 40, database=app.config['DB_NAME'], host=app.config['DB_HOST'], port=app.config['DB_PORT'], user=app.config['DB_USER'], password=app.config['DB_PASS'] ) except OperationalError as e: logging.error(str(e)) else: logging.info("Connection pool created successfully") return app application = create_app() if __name__ == '__main__': application.run('0.0.0.0', port=8000)