🐍Python🐍 zajęcia 12

🐍Python🐍 zajęcia 12
Photo by Mykhailo Amirdzhanian / Unsplash

  • biblioteka streamlit

Biblioteka Streamlit

  • służy do pisania aplikacji webowych
  • dokumentacja: https://docs.streamlit.io/develop/api-reference
  • biblioteka Pythona, która umożliwia szybkie tworzenie interaktywnych aplikacji internetowych opartych na danych, używając tylko kilku linijek kodu.
  • dzięki niej nie potrzebujemy znać JavaScript, HTML czy CSS aby
  • uruchamianie kodu korzystającego z tej biblioteki (otwiera nam przeglądarkę)
    • w terminalu : streamlit run nazwa_programu.py
  • instalowanie:
    • pip install streamlit[all]
  • importowanie biblioteki :
    • import streamlit as st

Funkcje biblioteki Streamlit

Podstawowe wyświetlanie

  • st.write() – uniwersalna funkcja, potrafi wyświetlać tekst, liczby, ramki danych, wykresy i markdown.
  • st.markdown() – pozwala używać formatowania Markdown (np. pogrubienia, listy, nagłówki, emoji)
  • st.title(), st.header(), st.subheader(), st.caption() – szybkie formatowanie nagłówków.

Interaktywne elementy (widgety)

  • st.button() – przyciski akcji.
  • st.checkbox(label, value=False) – okno do zaznaczenia, jeśli zostanie zaznaczone zwraca True, w przeciwnym razie jest rozumiane jako False.
  • st.radio() – wybór jednej opcji z listy.
  • st.selectbox(), st.multiselect() – rozwijane listy.
  • st.slider(label, min_value, max_value, value) - funkcja tworząca suwak; zwraca aktualnie wybraną wartość.
  • st.text_input(), st.number_input(), st.text_area() – pola do wprowadzania danych.
  • st.file_uploader() – wrzucanie plików (CSV, obrazki, PDF).
  • st.date_input(), st.time_input() – wybór daty i godziny.

Praca z danymi i wykresami

  • st.dataframe() – wyświetlanie tabeli (z możliwością sortowania i przewijania).
  • st.table() – prosta tabela (statyczna).
  • st.metric() – wyświetlanie KPI (np. wartość + zmiana).
  • st.line_chart(), st.area_chart(), st.bar_chart() – szybkie wykresy liniowe, z Pandas.
  • Integracja z matplotlib, plotly, altair, seaborn – np. st.pyplot(fig) lub st.plotly_chart(fig).

Struktura i układ

  • st.sidebar – łatwe przeniesienie widgetów do panelu bocznego (st.sidebar.slider()).
  • st.columns() – dzielenie widoku na kolumny.
  • st.expander() – rozwijane sekcje (np. dodatkowe opcje).
  • st.tabs() – zakładki w interfejsie.
  • st.container() – tworzenie bloków, do których można dodawać elementy dynamicznie.

Dodatki i integracje

  • st.map() – szybkie mapy na podstawie danych geograficznych.
  • st.form() – grupowanie wielu pól wejściowych w jeden formularz.
  • st.download_button() – pozwala użytkownikowi pobrać dane jako CSV, Excel czy JSON.
  • st.file_uploader() pobieranie plików.

Zalety Streamlit

  1. Bardzo szybki start – w kilka minut możesz mieć działającą interaktywną aplikację.
  2. Prosty w użyciu – składnia jest intuicyjna, funkcje typu st.button(), st.slider(), st.checkbox() działają “od ręki”.
  3. Integracja z Pythonem – łatwo używać Pandas, NumPy, Matplotlib, Plotly, Scikit-learn itp.
  4. Automatyczny interfejs – nie trzeba pisać HTML/CSS ani JS, wszystko jest gotowe.
  5. Obsługa interakcji w czasie rzeczywistym – np. suwaki, checkboxy, przyciski.
  6. Łatwe udostępnianie – np. poprzez Streamlit Cloud, GitHub lub lokalny serwer.
  7. Fajne do prototypów i wizualizacji danych – idealne do szybkiego pokazania wyników analiz.

Wady Streamlit

  1. Nie nadaje się do dużych, rozbudowanych aplikacji webowych – brak pełnej kontroli nad frontendem i routingiem.
  2. Stan aplikacji może być trudny do zarządzania – np. przy wielu interaktywnych elementach potrzebny jest st.session_state.
  3. Nie najlepsze dla mobilnych przeglądarek – interfejs jest responsywny, ale czasem wymaga poprawek.
  4. Wydajność przy dużych zbiorach danych – renderowanie wykresów i interakcji może spowolnić aplikację.
  5. Brak wbudowanego uwierzytelniania i autoryzacji – Streamlit nie ma wbudowanego systemu logowania ani kontroli uprawnień. To oznacza, że jeśli tworzysz aplikację, w której mają korzystać różni użytkownicy z różnymi prawami, musisz sam napisać kod, który sprawdza login, hasło i prawa użytkownika, albo użyć dodatkowej biblioteki (np. streamlit-authenticator). Dla prostych aplikacji, które służą tylko do testów czy wizualizacji danych, zwykle nie jest to potrzebne.