using-streamlit-custom-components

Par streamlit · agent-skills

Utilisation de composants personnalisés Streamlit tiers. À utiliser pour étendre Streamlit avec des packages communautaires. Couvre l'installation, les composants personnalisés populaires et les cas d'usage appropriés.

npx skills add https://github.com/streamlit/agent-skills --skill using-streamlit-custom-components

Composants personnalisés Streamlit

Étendez Streamlit avec des composants personnalisés tiers provenant de la communauté.

Qu'est-ce que les composants personnalisés ?

Les composants personnalisés sont des bibliothèques Python autonomes qui ajoutent des fonctionnalités non présentes dans l'API principale de Streamlit. Ils sont développés par la communauté et peuvent être installés comme n'importe quel package Python.

Installation

Installez en utilisant le nom du package PyPI (pas le nom du repo—ils peuvent différer) :

uv add <pypi-package-name>

Ensuite, importez selon la documentation du composant. Le nom d'import diffère souvent du nom du package aussi.

À utiliser avec prudence

Les composants ne sont pas maintenus par Streamlit. Avant de les adopter :

  • Vérifiez la maintenance - Est-il activement maintenu ? Y a-t-il des commits récents ?
  • Vérifiez la compatibilité - Fonctionne-t-il avec votre version de Streamlit ?
  • Vérifiez la popularité - Étoiles GitHub, téléchargements, utilisation communautaire
  • Envisagez des alternatives - Pouvez-vous le faire avec Streamlit core ?

Les composants personnalisés peuvent se briser lors des mises à jour de Streamlit, préférez donc les fonctionnalités core quand c'est possible.

Composants personnalisés populaires

streamlit-keyup

Entrée de texte qui se déclenche à chaque frappe au lieu d'attendre la touche entrée/perte de focus. Utile pour la recherche en direct.

uv add streamlit-keyup
from st_keyup import st_keyup

query = st_keyup("Search", debounce=300)  # 300ms debounce
filtered = df[df["name"].str.contains(query, case=False)]
st.dataframe(filtered)

streamlit-bokeh

Remplacement officiel pour st.bokeh_chart (supprimé de l'API Streamlit). Maintenu par Streamlit.

uv add streamlit-bokeh
from bokeh.plotting import figure
from streamlit_bokeh import streamlit_bokeh

p = figure(title="Simple Line", x_axis_label="x", y_axis_label="y")
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2)
streamlit_bokeh(p)

streamlit-aggrid

Dataframes interactifs avec tri, filtrage, édition de cellules, regroupement et pivot. À utiliser quand vous avez besoin de personnalisation au-delà de ce que st.dataframe et st.data_editor offrent.

uv add streamlit-aggrid
from st_aggrid import AgGrid

AgGrid(df, editable=True, filter=True)

Quand utiliser aggrid au lieu de st.dataframe :

  • Regroupement et pivot interactifs de lignes
  • Interface de filtrage et tri avancée
  • Flux de travail d'édition de cellules complexes
  • Rendus de cellules personnalisés

streamlit-folium

Cartes interactives alimentées par Folium.

uv add streamlit-folium
import folium
from streamlit_folium import st_folium

m = folium.Map(location=[37.7749, -122.4194], zoom_start=12)
st_folium(m, width=700)

pygwalker

Exploration de données de type Tableau avec glisser-déposer.

uv add pygwalker
import pygwalker as pyg

pyg.walk(df, env="Streamlit")

streamlit-extras

Une collection d'utilitaires communautaires. Choisissez ce dont vous avez besoin.

uv add streamlit-extras
from streamlit_extras.image_selector import image_selector

# Laissez les utilisateurs cliquer sur les régions d'une image
selection = image_selector(image, selections=["Region A", "Region B"])
from streamlit_extras.vertical_slider import vertical_slider

# Un widget curseur vertical
value = vertical_slider("Volume", min_value=0, max_value=100, default_value=50)

Découvrez d'autres composants

Parcourez la galerie de composants personnalisés : https://streamlit.io/components

Filtrez par catégorie, popularité et récence pour trouver les composants personnalisés adaptés à votre cas d'usage.

Références

Skills similaires