from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from flask_login import LoginManager db = SQLAlchemy() migrate = Migrate() login_manager = LoginManager() def create_app(): app = Flask(__name__) app.config.from_object('config.Config') # Initialize core extensions db.init_app(app) migrate.init_app(app, db) login_manager.init_app(app) login_manager.login_view = 'auth.login' # Optional: redirect for @login_required # Register Blueprints from .core.routes import core from .core.auth import auth app.register_blueprint(core) app.register_blueprint(auth, url_prefix="/auth") # Register CLI commands from .cli import seed_admin app.cli.add_command(seed_admin) return app @login_manager.user_loader def load_user(user_id): from .core.models import User return User.query.get(int(user_id))