מה זה Streamlit והאם הוא מתאים לי?

Streamlit הוא ספרייה פיתוחית פתוחה ל-Python המאפשרת לבנות יישומי דשבורדים ואפליקציות ווב אינטראקטיביות תוך דקות — ללא צורך בידע ב-HTML, CSS או JavaScript. הוא נוצר במיוחד עבור אנשי נתונים, אנליסטים ומדעני נתונים שמעוניינים להציג תוצאות, גרפים ונתונים באופן חזותי וקל לשימוש.

איך זה עובד? אתה כותב קוד Python רגיל, ו-Streamlit ממיר אותו לאפליקציית ווב תוך כדי הרצת הפקודה 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 מציע עשרות רכיבים לשינוי דינמי של הדשבורד. הנה השימוש הנפוץ ביותר:

# דוגמה למסננים דינמיים
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
הסיקור המהיר: אם אתה מפתח נתונים או אנליסט שמעוניין להציג תוצאות מהר – Streamlit הוא הפתרון האופטימלי. אם אתה מפתח ווב מקצועי שמביא דשבורדים כחלק מאפליקציה גדולה – Dash או Flask עשויים להתאים יותר.

نصائح חשובות להצלחה

השתמש ב-cache

הוסף @st.cache_data לפונקציות טעינה/חישוב כדי למנוע ריצה חוזרת של שאילתות או חישובים כבדים.

📁

ארגן את הקוד

פריד את הקבצים: data_loader.py, charts.py, app.py – כך הדשבורד נשאר קריא וניתן לשינוי.

🔒

שמור על פרטיות

אל תעלה לקובץ GitHub סודות כמו מפתחות API או פרטי חיבור ל-DB. השתמש בקובץ .streamlit/secrets.toml או משתנים סביבתיים.

אזהרה חשובה: אל תריץ דשבורדים עם גישה לנתונים רגישים (למשל: לקוחות, שכר, בריאות) על סרבר ציבורי ללא אבטחה מתאימה. תמיד השתמש באימות משתמש (דרך st.secrets או שירות חיצוני) אם הדשבורד נגיש מחוץ לרשת הארגונית.

פרסום ושיתוף הדשבורד

לאחר שהדשבורד מוכן, אפשר לשתף אותו בכמה דרכים:

לדוגמה, כדי לפרוס לענן החינמי של Streamlit:

  1. העלו את כל הקבצים לגיטהאב (כולל requirements.txt)
  2. פתחו את streamlit.io/cloud והתחברו דרך GitHub
  3. בחרו את הרפוזיטורי והגדרו את שם הקובץ הראשי (למשל: app.py)
  4. לחצו על 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