from flask import Flask from app.config import Config from app.extensions import db, mail, limiter from werkzeug.middleware.proxy_fix import ProxyFix import logging def create_app(config_class=Config): app = Flask(__name__) app.config.from_object(config_class) app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1) gunicorn_logger = logging.getLogger("gunicorn.error") app.logger.handlers = gunicorn_logger.handlers app.logger.setLevel(gunicorn_logger.level) # Initialize extensions db.init_app(app) mail.init_app(app) limiter.init_app(app) # Register Blueprints from app.routes import bp as main_bp app.register_blueprint(main_bp) # Create DB tables with app.app_context(): db.create_all() return app