Home
Login

Streamlit est une bibliothèque Python qui vous permet de créer de magnifiques applications web personnalisées avec du code Python pur, pour l'apprentissage automatique, la science des données, etc.

Apache-2.0Python 39.9kstreamlit Last Updated: 2025-06-14

Streamlit : La manière la plus rapide de créer des applications de données en Python

Introduction

Streamlit est une bibliothèque Python open source conçue pour permettre aux data scientists et aux ingénieurs en apprentissage automatique de créer rapidement et facilement des applications web esthétiques et interactives. Elle simplifie le processus de transformation de scripts de science des données en applications web partageables, sans nécessiter d'expérience en développement front-end.

Principes fondamentaux :

  • Adopter les scripts Python : Streamlit vous permet de construire des applications en utilisant uniquement des scripts Python, sans avoir à écrire de HTML, CSS ou JavaScript.
  • Mises à jour en temps réel : Les applications Streamlit se mettent à jour automatiquement à chaque modification et sauvegarde de votre code, permettant une itération et une expérimentation rapides.
  • Simplicité d'utilisation : Streamlit offre une API intuitive qui vous permet d'ajouter facilement divers éléments d'interface utilisateur, tels que du texte, des graphiques, des curseurs, des boutons, etc.
  • Piloté par les données : Streamlit est spécialement conçu pour les flux de travail de science des données, facilitant l'affichage et la manipulation des données.
  • Aucune expérience front-end requise : Streamlit abstrait la complexité du développement front-end, vous permettant de vous concentrer sur les données et les modèles.

Informations sur le dépôt du projet

  • Dépôt GitHub : https://github.com/streamlit/streamlit
  • Langage de programmation principal : Python
  • Licence : Apache License 2.0
  • Stars : 23k+ (au 26 janvier 2024)
  • Forks : 2k+ (au 26 janvier 2024)
  • Contributeurs : 300+

Principales caractéristiques

  • API simple et facile à utiliser : Streamlit fournit une API concise pour créer divers éléments d'interface utilisateur, tels que :
    • st.write() : Affiche du texte, des données, des graphiques, etc.
    • st.slider() : Crée un contrôle de curseur.
    • st.button() : Crée un contrôle de bouton.
    • st.selectbox() : Crée une boîte de sélection déroulante.
    • st.dataframe() : Affiche un DataFrame Pandas.
    • st.line_chart() : Affiche un graphique linéaire.
    • st.map() : Affiche une carte.
    • st.file_uploader() : Télécharge des fichiers
  • Re-exécution automatique : Les applications Streamlit se re-exécutent automatiquement à chaque modification et sauvegarde du code, permettant une itération rapide.
  • Cache : Streamlit dispose d'un mécanisme de cache intégré qui permet de mettre en cache les résultats des calculs, améliorant ainsi les performances de l'application. L'utilisation du décorateur @st.cache_data permet de mettre en cache les résultats des fonctions.
  • État de la session : Streamlit vous permet de gérer l'état de l'application à l'aide de st.session_state, ce qui permet de créer des applications interactives plus complexes.
  • Composants : Streamlit prend en charge les composants personnalisés, ce qui vous permet d'étendre les fonctionnalités de Streamlit et d'intégrer des bibliothèques tierces.
  • Thèmes : Streamlit vous permet de personnaliser l'apparence de votre application, y compris les couleurs, les polices, etc.
  • Déploiement : Les applications Streamlit peuvent être facilement déployées sur diverses plateformes, telles que Streamlit Community Cloud, Heroku, AWS, Google Cloud, etc.
  • Support communautaire : Streamlit dispose d'une communauté active qui fournit une documentation, des tutoriels et des exemples riches.

Modules et fonctionnalités principaux

  • streamlit : Bibliothèque principale contenant l'API pour construire des applications.
  • streamlit.components.v1 : API pour créer des composants personnalisés.
  • streamlit.config : Utilisé pour configurer le comportement des applications Streamlit.
  • streamlit.delta_generator : API pour générer des éléments d'interface utilisateur.
  • streamlit.runtime : Environnement d'exécution des applications Streamlit.
  • streamlit.web : Serveur web des applications Streamlit.

Cas d'utilisation

Streamlit peut être utilisé pour construire diverses applications de données, telles que :

  • Visualisation de données : Créer des graphiques et des tableaux de bord interactifs pour explorer et analyser les données.
  • Déploiement de modèles d'apprentissage automatique : Déployer des modèles d'apprentissage automatique en tant qu'applications web afin que les utilisateurs puissent interagir avec les modèles.
  • Exploration de données : Construire des outils interactifs pour explorer et comprendre les données.
  • Annotation de données : Créer des outils d'annotation de données pour aider à annoter les données.
  • Éducation et démonstration : Créer des démonstrations interactives pour présenter des concepts et des techniques de science des données.
  • Outils internes : Construire des outils de données internes pour améliorer l'efficacité de l'équipe.

Exemple de code

Voici un exemple simple d'application Streamlit :

import streamlit as st
import pandas as pd
import numpy as np

st.title('Ma première application Streamlit')

st.write('Bonjour, le monde !')

# Créer un DataFrame
data = pd.DataFrame({
    'col1': [1, 2, 3, 4],
    'col2': [5, 6, 7, 8]
})

# Afficher le DataFrame
st.write('Voici un DataFrame :')
st.dataframe(data)

# Créer un curseur
x = st.slider('Sélectionnez une valeur pour x', 0, 100, 50)

# Afficher la valeur du curseur
st.write('La valeur de x est :', x)

# Créer un graphique de nombres aléatoires
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])

st.line_chart(chart_data)

Installation

Streamlit peut être installé à l'aide de pip :

pip install streamlit

Exécution

Pour exécuter une application Streamlit, exécutez la commande suivante dans la ligne de commande :

streamlit run your_app.py

your_app.py est le fichier Python de votre application Streamlit.

Avantages

  • Développement rapide : Streamlit vous permet de construire rapidement des applications de données sans avoir à écrire beaucoup de code.
  • Facile à utiliser : Streamlit fournit une API intuitive qui vous permet d'ajouter facilement divers éléments d'interface utilisateur.
  • Interactif : Les applications Streamlit sont interactives, permettant aux utilisateurs d'interagir avec les données.
  • Déploiement : Les applications Streamlit peuvent être facilement déployées sur diverses plateformes.
  • Support communautaire : Streamlit dispose d'une communauté active qui fournit une documentation, des tutoriels et des exemples riches.

Inconvénients

  • Personnalisation limitée : La personnalisation de Streamlit est relativement limitée et peut ne pas répondre aux besoins de toutes les applications.
  • Performances : Pour les applications complexes, les performances de Streamlit peuvent être inférieures à celles des frameworks web traditionnels.
  • Faible contrôle du front-end : Impossible de contrôler l'interface utilisateur aussi finement qu'avec les frameworks front-end traditionnels.

Conclusion

Streamlit est un outil puissant qui peut aider les data scientists et les ingénieurs en apprentissage automatique à construire rapidement des applications web esthétiques et interactives. Il simplifie le processus de transformation de scripts de science des données en applications web partageables, sans nécessiter d'expérience en développement front-end. Bien qu'il présente certaines limitations en termes de personnalisation et de performances, sa facilité d'utilisation et sa capacité de développement rapide en font un choix idéal pour de nombreux projets de science des données.

Tous les détails sont à vérifier sur le site officiel (https://github.com/streamlit/streamlit)