| 1234567891011121314151617181920212223242526272829303132333435363738 |
- import os
- from flask import Flask
- from flask_sqlalchemy import SQLAlchemy
- from flask_migrate import Migrate
- from flask_cors import CORS
- from config.settings import config
- db = SQLAlchemy()
- migrate = Migrate()
- def create_app(config_name=None):
- """Application factory pattern"""
- if config_name is None:
- config_name = os.environ.get('FLASK_ENV', 'development')
-
- app = Flask(__name__)
- app.config.from_object(config[config_name])
-
- # Initialize extensions
- db.init_app(app)
- migrate.init_app(app, db)
- CORS(app)
-
- # Create upload directories
- os.makedirs(app.config.get('UPLOAD_FOLDER', 'uploads'), exist_ok=True)
- os.makedirs(app.config.get('REPORTS_FOLDER', 'reports'), exist_ok=True)
-
- # Register blueprints
- from app.api import api_bp
- app.register_blueprint(api_bp, url_prefix='/api')
-
- # Register error handlers
- from app.errors import register_error_handlers
- register_error_handlers(app)
-
- return app
|