Streamlit создание веб интефейса на Python
Streamlit — это открытый фреймворк на Python, который позволяет быстро создавать интерактивные веб-приложения для анализа данных и машинного обучения без необходимости глубоких знаний фронтенд-разработки (HTML, CSS, JavaScript).
🔹 Полезные ссылки:¶
🔹 Ключевые особенности Streamlit:¶
- Простота
- Создание интерфейса с помощью нескольких строк кода.
-
Пример:
-
Интерактивные элементы
- Кнопки (
st.button), слайдеры (st.slider), выпадающие списки (st.selectbox), загрузка файлов (st.file_uploader) и многое другое. -
Пример:
-
Визуализация данных
- Поддержка Matplotlib, Plotly, Altair, Vega-Lite и других библиотек.
-
Встроенные функции для отображения таблиц (
st.dataframe), графиков (st.line_chart) и метрик (st.metric). -
Кэширование для производительности
-
Декоратор
@st.cache_dataускоряет работу с большими данными, сохраняя результаты вычислений. -
Развертывание в один клик
-
Приложения легко публиковать через Streamlit Community Cloud, а также на других платформах (Heroku, AWS, Docker).
-
Поддержка Markdown и HTML
- Можно добавлять форматированный текст, формулы LaTeX и даже кастомный CSS.
🔹 Пример приложения (дашборд):¶
import streamlit as st
import pandas as pd
import numpy as np
st.title("Анализ данных 📊")
# Загрузка данных
data = pd.DataFrame(np.random.randn(50, 2), columns=["A", "B"])
# Интерактивный фильтр
option = st.selectbox("Выберите столбец:", data.columns)
st.line_chart(data[option])
# Показ сырых данных
if st.checkbox("Показать исходные данные"):
st.dataframe(data)
🔹 Плюсы Streamlit:¶
- Для новичков: Минимальный порог входа.
- Для профессионалов: Гибкость + интеграция с ML-библиотеками (TensorFlow, PyTorch, Scikit-learn).
- Быстрое прототипирование: От идеи до рабочего дашборда за минуты.
🔹 Минусы:¶
- Ограниченная кастомизация дизайна (по сравнению с Dash или Flask).
- Не подходит для сложных многостраничных приложений (хотя есть обходные пути).
Streamlit отлично подходит для Data Science, быстрых демонстраций моделей и внутренних инструментов аналитики