🐍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.