Streamlit
Streamlit to framework (platforma, szkielet do budowy aplikacji) do tworzenie aplikacji web-owych z wykorzystaniem języka Python. Nie wymaga znajomości HTML-a, Javascript-u, czy CSS-a.
Powstał z myślą głównie o zastosowaniach w analizie danych (tworzenie różnej maści dashboardów etc). Jednak społeczność jego użytkowników często stosuje go do zastosowań mocno odbiegających od tej tematyki.
Instalacja i dodanie do programu
Framework ten możemy zainstalować wykorzystując menadżera pakietów pip
:
pip install streamlit
Importujemy go do aplikacji w standardowy sposób, poprzez import
. Przyjęło się wykorzystywać tę bibliotekę pod nazwą st
(stąd pojawiają się po import
dodatkowe słowa as st
):
import streamlit as st
st.write("Hello World!")
Uruchamianie aplikacji
Aplikacje stworzone z Streamlit-em NIE SĄ uruchamiane w "normalny" sposób (czyli np. poprzez python nazwaprogramu.py
czy guzik play w VSCode). Zamiast tego musimy:
streamlit run nazwaprogramu.py
Dzięki temu uruchamiany jest serwer www umożliwiający nam oglądanie naszej aplikacji w przeglądarce i pozostała funkcjonalność niezbędna Streamlit-owi.
Podstawowe komponenty Streamlit-a
Zachęcam do przejrzenia oficjalnej dokumentacji dostępnej pod:
Zawiera ona bardzo dobre przykłady dla wszystkich dostępnych komponentów.
Tytuł okna
st.set_page_config(page_title="Jakiś tytuł")
Komponenty "tekstowe"
st.write("tekst")
- jeden z najbardziej uniwersalnych komponentów umożliwia wyświetlanie tekstu, markdownu, ramek danych, obrazków. Komponent ten rozpoznaje też tekst zapisany w markdown-ie, dzięki czemu może oszczędzić nam korzystania z kompomentów takich jak title, header, czy subheader.
st.title("tekst")
- umożliwia stworzenie tytułu (H1)
st.header("tekst")
- nagłówek
- można dodać parametr
divider
, który doda podkreślenie
Komponenty do wprowadzania / wyboru danych
st.text_input()
- pole do wprowadzania danych
st.slider()
- suwak
- możemy dodać min_value i max_value, które ograniczą nam zakres do wyboru
st.checkbox()
- pole do zaznaczenia "ptaszkiem"
st.multiselect()
- umożliwia wybrania kilka elementów z jakiegoś zakresu danych
Wykresy
st.bar_chart()
- wykres słupkowy
st.line_chart()
- wykres liniowy
st.scatter_chart
- wykres punktowy
Formularze
Wciśnięcie / wybranie jakiegokolwiek elementu na stronie zbudowanej z pomocą Streamlit-a spowoduje jej całkowite przeładowanie.
Wyjątkiem jest formularz - jego zawartość jest przeładowywana jedynie po wciśnięciu odpowiedniego przycisku.
import streamlit as st
with st.form("Jakiś formularz"):
st.write("Wewnątrz formularza")
slider_val = st.slider("Suwak")
checkbox_val = st.checkbox("Checkbox")
# Formularz powinien mieć przycisk do wysłania.
submitted = st.form_submit_button("Wyślij")
if submitted:
st.write("Suwak: ", slider_val, "Checkbox: ", checkbox_val)
st.write("Poza formularzem")
Odnośniki
„Streamlit Documentation”. Dostęp 18 sierpień 2024. https://docs.streamlit.io/.