fabriquedoc/frontend/app_tab4.py
François Pelletier 4a6bfc951f Gros refactoring
2024-12-31 17:00:07 -05:00

51 lines
No EOL
2.2 KiB
Python

# Importation des modules nécessaires
import requests # Pour effectuer des requêtes HTTP
import streamlit as st # Pour créer l'interface utilisateur web
# Définition de la fonction principale pour l'onglet 4 de l'application
def app_tab4():
# Affichage d'un en-tête dans l'interface utilisateur
st.header("Images")
# Préparation des en-têtes HTTP pour l'authentification
http_headers = {"Authorization": f"Bearer {st.session_state['bearer_token']}"}
# Section pour afficher les images disponibles
st.write("Images disponibles")
# Récupération de la liste des images depuis le serveur
response = requests.get(f"{st.session_state['fabriquedoc_endpoint']}/images/", headers=http_headers)
images = response.json()["images"]
# Création d'un menu déroulant pour sélectionner une image
selected_image = st.selectbox("Choisis une image:", images)
# Récupération et affichage de l'image sélectionnée
image_response = requests.get(f"{st.session_state['fabriquedoc_endpoint']}/images/{selected_image}", headers=http_headers)
image_data = image_response.content
st.image(image_data)
# Section pour envoyer une nouvelle image
st.write("Envoyer une image")
# Création d'un widget pour télécharger des fichiers
uploaded_files = st.file_uploader("Choisis un fichier image",
accept_multiple_files=True)
# Traitement des fichiers téléchargés
if uploaded_files is not None:
for uploaded_file in uploaded_files:
# Préparation de l'URL pour l'envoi de l'image
url = f"{st.session_state['fabriquedoc_endpoint']}/images/"
# Création d'un objet FormData pour l'envoi du fichier
files = {"file": uploaded_file}
# Envoi du fichier au serveur
response = requests.post(url, files=files, headers=http_headers)
# Vérification du statut de la réponse
if response.status_code < 300:
st.write(f"Le fichier {uploaded_file.name} a été envoyé avec succès !")
else:
st.write(f"L'envoi du fichier {uploaded_file.name} a échoué.")