Streamlit چیست؟
Streamlit یک فریمورک متنباز پایتون است که با یک اسکریپت معمولی، برنامهی وب دادهای میسازد: جدول، نمودار، ورودی، دکمه. در سال ۲۰۱۹ بهصورت عمومی عرضه شد و بعد Snowflake آن را خرید.
ایدهی هسته: هر تعامل، اجرای دوباره از بالا
هر بار کاربر چیزی را تغییر میدهد (یک اسلایدر، یک دکمه)، کل اسکریپت از اول اجرا میشود. این سادهترین مدل ذهنی است، ولی دو دام دارد:
- محاسبهی سنگین هر بار تکرار میشود؛ باید با کش (
st.cache_data) نگهش داشت. - متغیرها بین اجراها نمیمانند؛ برای حفظ حالت باید از
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 برای برنامهی دادهای.