optymalizacje_kodu #8

Merged
gru merged 23 commits from optymalizacje_kodu into master 2025-07-31 10:55:39 +02:00
2 changed files with 31 additions and 0 deletions
Showing only changes of commit 247e06bad5 - Show all commits

22
app.py
View File

@@ -49,6 +49,8 @@ from collections import defaultdict, deque
from functools import wraps
from flask_talisman import Talisman
from flask_session import Session
from sqlalchemy.exc import OperationalError
# OCR
import pytesseract
@@ -229,6 +231,26 @@ class Receipt(db.Model):
shopping_list = db.relationship("ShoppingList", back_populates="receipts")
@app.errorhandler(OperationalError)
def handle_db_error(e):
app.logger.error(f"[Błąd DB] {e}")
if request.accept_mimetypes.best == "application/json":
return jsonify({
"error": "Baza danych jest obecnie niedostępna. Spróbuj ponownie później."
}), 503
return (
render_template(
"errors.html",
code=503,
title="Błąd połączenia z bazą danych",
message="Nie udało się połączyć z bazą danych. Spróbuj ponownie później.",
),
503,
)
def hash_password(password):
pepper = app.config["BCRYPT_PEPPER"]
peppered = (password + pepper).encode("utf-8")

View File

@@ -1,3 +1,12 @@
#!/bin/sh
# Czekaj aż baza będzie gotowa
echo "Czekam na MySQL..."
until nc -z -v -w30 "$DB_HOST" "$DB_PORT"
do
echo "Baza jeszcze nie odpowiada, czekam..."
sleep 2
done
flask db upgrade 2>/dev/null || flask db_info
exec python app.py