| import os |
| from flask import Flask |
| from flask_sqlalchemy import SQLAlchemy |
| from flask_login import LoginManager |
| from flask_migrate import Migrate |
| from flask_mail import Mail |
| from config import Config |
|
|
| |
| db = SQLAlchemy() |
| migrate = Migrate() |
| login = LoginManager() |
| login.login_view = 'auth.login' |
| login.login_message = 'Please log in to access this page.' |
| mail = Mail() |
|
|
| def create_app(config_class=Config): |
| app = Flask(__name__) |
| app.config.from_object(config_class) |
|
|
| |
| os.makedirs('temp_uploads', exist_ok=True) |
| os.makedirs('spectrograms/temp', exist_ok=True) |
|
|
| db.init_app(app) |
| migrate.init_app(app, db) |
| login.init_app(app) |
| mail.init_app(app) |
|
|
| |
| from app.auth import bp as auth_bp |
| app.register_blueprint(auth_bp, url_prefix='/auth') |
|
|
| from app.routes import bp as main_bp |
| app.register_blueprint(main_bp) |
|
|
| with app.app_context(): |
| db.create_all() |
|
|
| return app |