inventory/inventory/__init__.py
2025-07-14 09:07:52 -05:00

42 lines
1.1 KiB
Python

from flask import Flask, current_app
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.engine.url import make_url
import logging
import os
db = SQLAlchemy()
logger = logging.getLogger('sqlalchemy.engine')
logger.setLevel(logging.INFO)
if not logger.handlers:
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] %(message)s'))
logger.addHandler(handler)
def is_in_memory_sqlite():
uri = current_app.config.get("SQLALCHEMY_DATABASE_URI")
if not uri:
return False
url = make_url(uri)
return url.get_backend_name() == "sqlite" and url.database == ":memory:"
def create_app():
from config import Config
app = Flask(__name__)
app.secret_key = os.getenv('SECRET_KEY', 'dev-secret-key-unsafe') # You know what to do for prod
app.config.from_object(Config)
db.init_app(app)
with app.app_context():
from . import models
if is_in_memory_sqlite():
db.create_all()
from .routes import main
from .routes.images import image_bp
app.register_blueprint(main)
app.register_blueprint(image_bp)
return app