Files
zbiorki_app/zbiorka_app/__init__.py
2026-03-20 10:43:40 +01:00

44 lines
1.0 KiB
Python

from flask import Flask
from config import Config
from .cli import register_cli_commands
from .errors import register_error_handlers
from .extensions import db, login_manager
from .routes import register_routes
from .utils import asset_url, init_version, init_database_with_retry
def create_app():
app = Flask(
__name__,
template_folder="templates",
static_folder="static",
static_url_path="/static",
)
app.config.from_object(Config)
db.init_app(app)
login_manager.init_app(app)
login_manager.login_view = "zaloguj"
init_version(app)
@app.context_processor
def inject_asset_helpers():
return {"asset_url": asset_url}
@app.before_request
def ensure_db_ready_before_request():
if app.extensions.get("database_ready") is True:
return None
init_database_with_retry(app, max_attempts=1, delay=0, raise_on_failure=False)
return None
register_routes(app)
register_error_handlers(app)
register_cli_commands(app)
return app