from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_login import LoginManager from config import config from app.models import db, Base, User from flask_migrate import Migrate # Initialize Flask-Login login_manager = LoginManager() login_manager.login_view = 'auth.login' login_manager.login_message = 'Please log in to access this page.' login_manager.login_message_category = 'warning' def create_app(config_name='default'): app = Flask(__name__) app.config.from_object(config[config_name]) # Initialize extensions db.init_app(app) migrate = Migrate(app, db) login_manager.init_app(app) # Register blueprints from app.routes import main from app.auth import auth app.register_blueprint(main) app.register_blueprint(auth, url_prefix='/auth') # User loader for Flask-Login @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) return app