TP done
This commit is contained in:
@@ -8,4 +8,53 @@ from .utils import build_image_structure
|
||||
# Création d'un Blueprint (collection de routes) nommé 'gallery'
|
||||
app = Blueprint('gallery', __name__)
|
||||
|
||||
# TODO : votre code ici (cf énoncé)
|
||||
|
||||
@app.route('/')
|
||||
def index() -> str:
|
||||
"""Affiche la galerie d'images de manière robuste."""
|
||||
|
||||
# On utilise pathlib pour construire le chemin
|
||||
image_dir = Path(current_app.static_folder) / 'images'
|
||||
|
||||
try:
|
||||
# On appelle notre fonction pour construire la structure de données
|
||||
structured_images = build_image_structure(image_dir)
|
||||
|
||||
error_message = None
|
||||
if not structured_images:
|
||||
error_message = "Aucune image valide n'a été trouvée dans la galerie."
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Une erreur est survenue lors de la création de la galerie : {e}")
|
||||
structured_images = {}
|
||||
error_message = "Une erreur serveur a empêché l'affichage de la galerie."
|
||||
|
||||
return render_template(
|
||||
'gallery.html',
|
||||
structured_images=structured_images,
|
||||
error_message=error_message
|
||||
)
|
||||
|
||||
|
||||
@app.route('/api/images')
|
||||
def api_images():
|
||||
"""Retourne la liste des images de la galerie au format JSON."""
|
||||
image_dir = Path(current_app.static_folder) / 'images'
|
||||
|
||||
try:
|
||||
structured_images = build_image_structure(image_dir)
|
||||
|
||||
if not structured_images:
|
||||
# On retourne le dictionnaire d'erreur et le code de statut
|
||||
# Flask s'occupe de la conversion en JSON
|
||||
return {'error': "Aucune image n'a été trouvée"}, 404
|
||||
|
||||
# On retourne directement le dictionnaire des images
|
||||
# Flask s'occupe du reste !
|
||||
return structured_images, 200 # Le 200 (OK) est le défaut, mais c'est bien d'être explicite
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Erreur API lors de la récupération des images : {e}")
|
||||
# Idem pour l'erreur serveur
|
||||
return {'error': "Erreur interne du serveur"}, 500
|
||||
|
||||
|
||||
Reference in New Issue
Block a user