from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_login import LoginManager from celery import Celery import redis db = SQLAlchemy() login = LoginManager() celery = Celery(__name__) cache = redis.Redis() def create_app(): # Create the Flask app first app = Flask(__name__) # Load configuration app.config.from_object('config.Config') # Set the instance path after loading the config app.instance_path = app.config['INSTANCE_PATH'] # Initialize extensions db.init_app(app) login.init_app(app) celery.conf.update(app.config) # Register Blueprints from .routes.auth import auth_bp from .routes.dashboard import dashboard_bp from .routes.api import api_bp from .routes.compliance import compliance_bp app.register_blueprint(auth_bp) app.register_blueprint(dashboard_bp) app.register_blueprint(api_bp) app.register_blueprint(compliance_bp) return app