Przejdź do treści głównej

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:

https://docs.streamlit.io/

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