import os from flask import Flask from flask_atlas_auth import AuthManager from sqlalchemy.schema import CreateSchema from src import config from src.admin import init_app from src.config import SQLALCHEMY_DATABASE_URI from src.db import db, migrate def create_app(): app = Flask(__name__) app.secret_key = os.environ.get("SECRET_KEY", "SECRET KEY") app.config.from_object(config) app.config["ADMIN_RAISE_ON_INTEGRITY_ERROR"] = True app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI app.config["FLASK_ADMIN_SWATCH"] = "slate" init_app(app) db.init_app(app) migrate.init_app(app, db, render_as_batch=True, include_schemas=True) with app.app_context(): engine = db.get_engine() if not engine.dialect.has_schema(engine, 'dna'): engine.execute(CreateSchema('dna')) auth_manager = AuthManager() auth_manager.init_app(app) return app app = create_app()