Streamlit چیست؟

Streamlit یک فریم‌ورک متن‌باز پایتون است که با یک اسکریپت معمولی، برنامه‌ی وب داده‌ای می‌سازد: جدول، نمودار، ورودی، دکمه. در سال ۲۰۱۹ به‌صورت عمومی عرضه شد و بعد Snowflake آن را خرید.

ایده‌ی هسته: هر تعامل، اجرای دوباره از بالا

هر بار کاربر چیزی را تغییر می‌دهد (یک اسلایدر، یک دکمه)، کل اسکریپت از اول اجرا می‌شود. این ساده‌ترین مدل ذهنی است، ولی دو دام دارد:

  1. محاسبه‌ی سنگین هر بار تکرار می‌شود؛ باید با کش (st.cache_data) نگهش داشت.
  2. متغیرها بین اجراها نمی‌مانند؛ برای حفظ حالت باید از st.session_state استفاده کرد.

نمونه

import streamlit as st
import pandas as pd
 
st.title("فروش ماهانه")
n = st.slider("چند ماه؟", 3, 12, 6)
df = pd.DataFrame({"ماه": range(1, n + 1), "فروش": [i * 10 for i in range(1, n + 1)]})
st.line_chart(df, x="ماه", y="فروش")

اجرا: streamlit run app.py

چه وقت خوب است؟

  • داشبورد داخلی سریع و ابزار تحلیل برای یک تیم.
  • نمایش خروجی یک تحلیل داده به آدم غیرفنی.

چه وقت نه؟

  • وقتی چیدمان دقیق، چند صفحه‌ی پیچیده یا کاربر زیاد می‌خواهی.
  • وقتی منطق برنامه به حالت‌های ظریف وابسته است (اجرای دوباره‌ی کل اسکریپت اذیت می‌کند).

مقایسه با Gradio: Gradio بیشتر برای دموی یک مدل است، Streamlit برای برنامه‌ی داده‌ای.

ابزارپایتونداشبورد