Перейти к содержанию

Streamlit создание веб интефейса на Python

Streamlit — это открытый фреймворк на Python, который позволяет быстро создавать интерактивные веб-приложения для анализа данных и машинного обучения без необходимости глубоких знаний фронтенд-разработки (HTML, CSS, JavaScript).

🔹 Полезные ссылки:

🔹 Ключевые особенности Streamlit:

  1. Простота
  2. Создание интерфейса с помощью нескольких строк кода.
  3. Пример:

    import streamlit as st
    st.title("Привет, Streamlit!")
    st.write("Это простой текст.")
    

  4. Интерактивные элементы

  5. Кнопки (st.button), слайдеры (st.slider), выпадающие списки (st.selectbox), загрузка файлов (st.file_uploader) и многое другое.
  6. Пример:

    name = st.text_input("Введите ваше имя")
    st.write(f"Привет, {name}!")
    

  7. Визуализация данных

  8. Поддержка Matplotlib, Plotly, Altair, Vega-Lite и других библиотек.
  9. Встроенные функции для отображения таблиц (st.dataframe), графиков (st.line_chart) и метрик (st.metric).

  10. Кэширование для производительности

  11. Декоратор @st.cache_data ускоряет работу с большими данными, сохраняя результаты вычислений.

  12. Развертывание в один клик

  13. Приложения легко публиковать через Streamlit Community Cloud, а также на других платформах (Heroku, AWS, Docker).

  14. Поддержка Markdown и HTML

  15. Можно добавлять форматированный текст, формулы 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, быстрых демонстраций моделей и внутренних инструментов аналитики