🐍Python🐍 zajęcia 12
- 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.markdown(body, unsafe_allow_html=False, *, help=None, width="stretch")
- zmiana koloru tekstu :color[treść] lub zmiana tła tekstu :color-background[treść].
- emoji: https://share.streamlit.io/streamlit/emoji-shortcodes.
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)
lubst.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
- Bardzo szybki start – w kilka minut możesz mieć działającą interaktywną aplikację.
- Prosty w użyciu – składnia jest intuicyjna, funkcje typu
st.button()
,st.slider()
,st.checkbox()
działają “od ręki”. - Integracja z Pythonem – łatwo używać Pandas, NumPy, Matplotlib, Plotly, Scikit-learn itp.
- Automatyczny interfejs – nie trzeba pisać HTML/CSS ani JS, wszystko jest gotowe.
- Obsługa interakcji w czasie rzeczywistym – np. suwaki, checkboxy, przyciski.
- Łatwe udostępnianie – np. poprzez Streamlit Cloud, GitHub lub lokalny serwer.
- Fajne do prototypów i wizualizacji danych – idealne do szybkiego pokazania wyników analiz.
Wady Streamlit
- Nie nadaje się do dużych, rozbudowanych aplikacji webowych – brak pełnej kontroli nad frontendem i routingiem.
- Stan aplikacji może być trudny do zarządzania – np. przy wielu interaktywnych elementach potrzebny jest
st.session_state
. - Nie najlepsze dla mobilnych przeglądarek – interfejs jest responsywny, ale czasem wymaga poprawek.
- Wydajność przy dużych zbiorach danych – renderowanie wykresów i interakcji może spowolnić aplikację.
- 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.