מה זה Streamlit והאם הוא מתאים לי?
Streamlit הוא ספרייה פיתוחית פתוחה ל-Python המאפשרת לבנות יישומי דשבורדים ואפליקציות ווב אינטראקטיביות תוך דקות — ללא צורך בידע ב-HTML, CSS או JavaScript. הוא נוצר במיוחד עבור אנשי נתונים, אנליסטים ומדעני נתונים שמעוניינים להציג תוצאות, גרפים ונתונים באופן חזותי וקל לשימוש.
streamlit run app.py. אין שרת, אין קבצי HTML – רק פיתוח מהיר וקצר.
היתרון הגדול: אפשר להריץ את הדשבורד מקומית, לשתף אותו עם צוות דרך קישור, ולהפיץ אותו גם בענן (כמו Streamlit Cloud או Heroku) בלי לחפש פתרונות מורכבים.
התקנה והגדרת הסביבה
התחל על ידי יצירת תיקייה חדשה וסביבת וירטואלית:
# יצירת סביבה וירטואלית
python -m venv streamlit_env
# הפעלת הסביבה (Windows)
streamlit_env\Scripts\activate.bat
# הפעלת הסביבה (macOS/Linux)
source streamlit_env/bin/activate
# התקנת Streamlit וספריות נלוות
pip install streamlit pandas numpy plotly seabornלאחר ההתקנה, בדוק שהכל עובד:
# קובץ hello.py
import streamlit as st
st.title("שלום עולם! 🌍")
st.write("זה הדשבורד הראשון שלך עם Streamlit.")הרץ בא терמינל: streamlit run hello.py — והדשבורד ייפתח באוטומטי בדפדפן שלך.
מבנה בסיסי של דשבורד מלא
הנה מבנה מלא של דשבורד פשוט המציג נתוני מכירות, עם מסננים, גרפים וסטטיסטיקות. נשתמש ב-Dataset מדומה של מכירות חודשיות:
import streamlit as st
import pandas as pd
import plotly.express as px
# טעינת נתוני דוגמה
df = pd.DataFrame({
"חודש": ["ינו", "פבר", "מרץ", "אפר", "מאי", "יוני"],
"מכירות": [12000, 15000, 13500, 17200, 16800, 18900],
"הכנסות": [240000, 300000, 270000, 344000, 336000, 378000]
})
# כותרת ראשית
st.title("📊 דשבורד מכירות חודשי")
st.markdown("עדכון אחרון: אפריל 2026")
# מסנן חודשי
selected_month = st.selectbox("בחר חודש", df["חודש"])
# סטטיסטיקות עליונות
col1, col2, col3 = st.columns(3)
col1.metric("מכירות", f"{df[df['חודש']==selected_month]['מכירות'].iloc[0]:,} ₪")
col2.metric("הכנסות", f"{df[df['חודש']==selected_month]['הכנסות'].iloc[0]:,} ₪")
col3.metric("גידול חודשי", "+4.2%")
# גרף חיזוי
fig = px.line(df, x="חודש", y=["מכירות", "הכנסות"], title="גרף פיתוח מכירות והכנסות")
st.plotly_chart(fig, use_container_width=True)רכיבים אינטראקטיביים מרכזיים
Streamlit מציע עשרות רכיבים לשינוי דינמי של הדשבורד. הנה השימוש הנפוץ ביותר:
- st.slider() – מסנן ערכי מספר (למשל: טווח גילאים, סכום הוצאה)
- st.date_input() – בחירת תאריכים
- st.multiselect() – בחירה מרובה (למשל: סוגי מוצרים)
- st.button() – כפתור פעולה (למשל: עדכן נתונים, ייצא CSV)
- st.expander() – חלון מתקפל להצגת מידע מפורט
# דוגמה למסננים דינמיים
min_sales = st.slider("מינימום מכירות", 5000, 20000, 10000)
filtered_df = df[df["מכירות"] >= min_sales]
with st.expander("הצג את הנתונים המסוננים"):
st.dataframe(filtered_df)
if st.button("ייצא כ-CSV"):
st.download_button(
label="הורד קובץ CSV",
data=filtered_df.to_csv(index=False).encode('utf-8'),
file_name="מכירות_מסוננות.csv",
mime="text/csv"
)השוואה: Streamlit לעומת כלים אחרים
למה לבחור ב-Streamlit ולא ב-Dash, Plotly Dash או Flask? הנה השוואה פרקטית:
| תכונה | Streamlit | Dash | Flask + Chart.js |
|---|---|---|---|
| זמן פיתוח (לדשבורד בסיסי) | ⏱️ 10–30 דקות | ⏱️ 2–4 שעות | ⏱️ 6–12 שעות |
| ידע נדרש | רק Python | Python + React/JS (לחלק מהאופציות) | Python + HTML/CSS/JS |
| תמיכה ב-UI מודרני | ✅ כולל רכיבים מוכנים (metric, expander וכו') | ✅ אבל דורש הגדרה ידנית | ❌ תלוי בפיתוח עצמי |
| פריסה קלה | ✅ Streamlit Cloud (חינם) | ⚠️ Heroku או Vercel – דורשים קונפיגורציה | ⚠️ דרוש שרת, Nginx, SSL |
نصائح חשובות להצלחה
השתמש ב-cache
הוסף @st.cache_data לפונקציות טעינה/חישוב כדי למנוע ריצה חוזרת של שאילתות או חישובים כבדים.
ארגן את הקוד
פריד את הקבצים: data_loader.py, charts.py, app.py – כך הדשבורד נשאר קריא וניתן לשינוי.
שמור על פרטיות
אל תעלה לקובץ GitHub סודות כמו מפתחות API או פרטי חיבור ל-DB. השתמש בקובץ .streamlit/secrets.toml או משתנים סביבתיים.
st.secrets או שירות חיצוני) אם הדשבורד נגיש מחוץ לרשת הארגונית.
פרסום ושיתוף הדשבורד
לאחר שהדשבורד מוכן, אפשר לשתף אותו בכמה דרכים:
- Streamlit Community Cloud – פריסה חינמית, פשוטה ומאובטחת.只需 חשבון GitHub + לחיצה על "Deploy".
- Heroku – מתאים לפרויקטים גדולים יותר עם דרישות אישיות (כולל CI/CD).
- Docker + Cloud Run / EC2 – עבור סביבות ייצור עם ניהול מתקדם.
לדוגמה, כדי לפרוס לענן החינמי של Streamlit:
- העלו את כל הקבצים לגיטהאב (כולל
requirements.txt) - פתחו את streamlit.io/cloud והתחברו דרך GitHub
- בחרו את הרפוזיטורי והגדרו את שם הקובץ הראשי (למשל:
app.py) - לחצו על Deploy — תוך דקות הדשבורד יהיה זמין!
st.set_page_config() בראש הקובץ כדי לשנות את הכותרת, האיקון, וה레이아웃 של הדף:
st.set_page_config(
page_title="דשבורד מכירות | LearningHub",
page_icon="📊",
layout="wide",
initial_sidebar_state="expanded"
)✍️ נכתב ע"י יעקב בידני | Senior AI & Full-Stack Expert | bdnhost.net