Flapjax Visualizzazione dei dati sul web con Plotly e Flask

Flapjax Visualizzazione dei dati sul web con Plotly e Flask

Costruisci una pagina web di visualizzazione dei dati con Plotly e Flask e rendila interattiva con alcuni componenti UI

Foto di Mae Mu su Unsplash

Qual è il miglior framework per la creazione di app di visualizzazione dei dati? È Streamlit o Dash, forse? O forse potresti convertire un Jupyter Notebook in un’app web con Mercury o Voilá?

Tutti questi sono ottimi modi per creare applicazioni e sono abbastanza facili da iniziare. Ma ciò che è facile da avviare può diventare un po’ più complesso quando ti avventuri oltre. Quindi, cercherò di convincerti che tornare alle basi e utilizzare il codice di server Python insieme a una pagina HTML per l’interfaccia utente non è così spaventoso come potrebbe sembrare.

Possiamo creare applicazioni interattive convincenti utilizzando una buona quantità di codice boilerplate e modelli, il che significa che puoi comunque concentrarti sul tuo codice Python e l’esposizione ad HTML e Javascript è minima. Chiamo questo approccio Flapjax, spiegherò il motivo in seguito.

Uno dei modi più semplici per creare un’applicazione web in Python è utilizzare Flask, quindi è quello che faremo e creeremo un’app che assomiglia a quella nell’immagine qui sotto.

Il framework Flask

Flask è un framework minimalista per lo sviluppo di applicazioni web. In un’app Flask, la pagina web di solito viene costruita da un modello e dati forniti dal codice Python: questi dati possono essere testo o grafica che formano il contenuto della pagina web. Il risultato viene inviato all’utente per essere visualizzato nel browser.

Il diagramma qui sotto mostra la struttura di base di un’app interattiva. Quando l’app è in esecuzione, la parte in Python viene eseguita sul server e passa i dati all’HTML che viene eseguito nel browser. L’input dell’utente dalla pagina web viene riportato al codice Python che potrebbe quindi inviare ulteriori dati per aggiornare l’HTML con nuovi contenuti, ad esempio un nuovo grafico selezionato dall’utente.