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' from flask import Flask, request, make_response 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__, static_folder='static', static_url_path='/static') app.config.from_object(config[config_name]) # Add middleware to simulate 500 errors @app.before_request def check_for_simulate_500(): # Check if the X-Simulate-500 header is present if request.headers.get('X-Simulate-500'): response = make_response({'error': 'Simulated server error'}, 500) response.headers['Content-Type'] = 'application/json' return response # 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