Source code for blood_analyzer

"""
Module initializes Flask app and registers blueprints defined in routes module.
"""

# Third-part
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_bcrypt import Bcrypt
from flask_login import LoginManager
from flask_marshmallow import Marshmallow
from flask_mail import Mail

_DB = SQLAlchemy()
_STATIC_FOLDER: str = ""
_BCRYPT = None
_LOGIN_MANAGER = None
_MARSH = Marshmallow()
_MAIL = None


[docs]def create_app(): global _DB, _STATIC_FOLDER, _BCRYPT, _LOGIN_MANAGER, _MARSH, _MAIL app = Flask(__name__) app.config.from_object("config.Config") _DB = SQLAlchemy(app) _MARSH = Marshmallow(app) _STATIC_FOLDER = app.static_folder _BCRYPT = Bcrypt(app) _LOGIN_MANAGER = LoginManager(app) _LOGIN_MANAGER.login_view = "server.login" _LOGIN_MANAGER.login_message_category = "info" _MAIL = Mail(app) # Blueprints from blood_analyzer.server import SERVER_BLUEPRINTS app.register_blueprint(SERVER_BLUEPRINTS) _DB.create_all() return app