
Streamlit è una libreria Python open source per la creazione di web app analitiche veloci, performanti e belle. Trasforma gli script di dati in applicazioni condivisibili in pochi minuti.
In questo articolo vedremo come costruire una web app utilizzando streamlit.
Hello World in Streamlit
Possiamo creare una semplice app hello world in questo modo:
- Assicurarsi di avere installata una versione di python 3.6+.
- Installare streamlit usando PIP:
pip install streamlit
3. Creare un file python app.py, inserire il codice seguente e salvarlo:
import streamlit as st st.title('Hello World') st.write('Prima app in streamlit')
Analizziamo nel dettaglio le ultime due righe di codice:
- st.title() ci consente di impostare il titolo della pagina;
- st.write() accetta diversi tipi di dati in input (testo, dataframe, numeri ecc…) e li mostra a video.
Per approfondire si consiglia la documentazione delle API di streamlit.
4. Avviare l’applicazione lanciando dal terminale il comando:
streamlit run app
Dopo qualche secondo l’applicazione andrà in esecuzione nel browser predefinito.

Creare un’Applicazione per il Monitoraggio del Covid-19 nelle Regioni Italiane
Creiamo adesso, una semplice applicazione che consentirà, dopo aver selezionato una regione di:
- Visualizzare il capoluogo della stessa su una mappa;
- Riepilogare, in real time, alcuni dati relativi al covid-19 della regione.
Per la costruzione di questa applicazione, ci focalizziamo più sulle funzionalità che sul design. Negli articoli successivi, vedremo come realizzare delle vere e proprie dashboard accattivanti.
Il risultato finale è accessibile al seguente link e vengono mostrate, di seguito, alcune immagini:


Coding…
Iniziamo adesso a scrivere il codice, partendo dall’import delle librerie streamlit e pandas(che utilizzeremo per gestire i dataframe):
import streamlit as st import pandas as pd
I dati utilizzati dall’applicazione provengono dal repository ufficiale della protezione civile. Per usufruire dei dati in real time, utilizziamo pandas e creiamo un dataframe dall’url del file csv contenente i dati aggiornati:
url = "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni-latest.csv" df = pd.read_csv(url, parse_dates=['data']) df = df.rename(columns={'long': 'lon'}) # Rinominiamo la colonna
Successivamente con st.title() settiamo il titolo della nostra applicazione, seguito da un header. Per consentire all’utente di scegliere una regione, utilizziamo l’oggetto st.selectbox(), al quale passiamo la label e la lista di opzioni da visualizzare. Dopo che l’utente ha selezionato un valore, questo viene memorizzato nella variabile regione, la quale viene utilizzata successivamente per filtrare il dataframe e prelevare solo i dati della regione selezionata:
st.title("COVID-19 NELLE REGIONI ITALIANE ?") st.header("Seleziona una regione per visualizzare un riepilogo dei dati") regione = st.selectbox('REGIONE', options=list(df['denominazione_regione'])) df_regione = df[df['denominazione_regione'] == regione]
Grazie all’oggetto st.map(), è possibile creare una mappa interattiva passando come parametro la longitudine e la latitudine. Successivamente, al di sotto della mappa, sono state create due colonne che riportano i dati di riepilogo, della regione selezionata, accedendo direttamente alle colonne del dataframe.
# Creazione mappa st.map(df_regione[['lon', 'lat']], zoom=7)# Creazione colonne col1, col2 = st.beta_columns(2)# Colonna 1 col1.write(f"? Casi Totali: {df_regione['totale_casi'].values[0]}") col1.write(f"? Nuovi Positivi: {df_regione['nuovi_positivi'].values[0]}") col1.write(f"? Tamponi Effettuati: {df_regione['tamponi'].values[0]}")# Colonna 2 col2.write(f"? Guariti: {df_regione['dimessi_guariti'].values[0]}") col2.write(f"? Terapia Intensiva: {df_regione['terapia_intensiva'].values[0]}") col2.write(f"? Deceduti: {df_regione['deceduti'].values[0]}")
Deploy
Un’altra funzionalità di streamlit, di notevole importanza, è Streamlit Sharing. La quale consente di distribuire, gestire e condividere le applicazioni con il mondo, direttamente da Streamlit, gratuitamente.

La vedremo meglio nel prossimo articolo.
L’argomento ti interessa e vuoi imparare di più a riguardo ? Dai uno sguardo ai corsi offerti dalla Online School di ProfessionAI, usando il codice LMARINO al checkout potrai avere il 30% di sconto su tutti i corsi.