Saagie sera au World IA Cannes Festival du 9 au 11 février→ Venez nous rencontrer, contactez nos équipes !

Dash : l’outil idéal pour développer une web App avec Python

Lorsque vous analysez des données, il est courant de devoir présenter vos résultats à vos collègues ou à vos clients, notamment via des visualisations.

Cependant, si vous souhaitez présenter un algorithme ou rendre vos visualisations interactives, un diaporama ne sera pas suffisant… Alors, une option courante est de créer une application web (web App) intégrant le résultat de votre travail.

Traditionnellement, le développement d’application web est du ressort d’un développeur « front-end », c’est-à-dire un spécialiste de langages de programmation tels que HTML, CSS et surtout JavaScript. C’est très éloigné des compétences classiques d’un spécialiste data.

Et pourtant, différents outils existent pour justement faciliter la vie des équipes data et leur permettre de développer des applications simples sans ressources ou compétences externes. C’est ce que nous allons voir dans cet article.

Les outils à votre disposition pour développer une web App en tant que data scientist

JavaScript est le langage roi en développement web, mais peu de data scientist lle maîtrisent. 

Nous allons donc nous intéresser aux outils s’appuyant sur les langages courants en data science ou ne nécessitant que peu de connaissance dans un langage de programmation particulier (outils « no-code » ou « low-code »).

Commençons avec Python, le langage le plus utilisé en data science. On citera deux librairies :

Il existe aussi une très bonne librairie du côté de R, langage très populaire pour l’analyse de données, en particulier dans le milieu académique et dans les laboratoires : il s’agit de ShinyApp.

Enfin, parmi les outils no-code ou low-code, on peut citer notamment : 

La plupart de ces outils « no-code » offrent la possibilité de concevoir et développer vos visualisations dans le cloud pour les rendre accessibles à d’autres personnes. Cependant, ces outils sont moins souples et sont cantonnés à la partie visualisation, tandis qu’un outil comme Dash offre de nombreuses autres possibilités : ajout de boutons, d’inputs, upload de fichiers…

Nous allons justement nous intéresser plus en détail à Dash dans la suite de cet article, pour vous donner les clés nécessaires pour déployer une application web avec cet outil.

Les bases de Dash pour développer votre première web App

Dash est construit autour de trois piliers essentiels : le « layout », les « callbacks » et les composants.

Le layout permet de définir la structure de votre application web

Le layout joue le même rôle que le code HTML d’une page web. 

Pour ceux qui seraient peu familiers avec le langage HTML, le layout permet de définir l’agencement des différents composants les uns par rapport aux autres sur la page.

Pour cette raison, la librairie Dash contient des classes représentant chaque tag HTML (div, table, span…). Cela permet de définir précisément la structure HTML de votre appli web, comme le ferait les développeurs « frontend ».

N. B. : gardez en tête que Dash est un outil adapté pour créer des applications relativement simples et mono-page (« single page app » en anglais). Si vous avez besoin de développer une application complexe, tournez-vous vers un développeur frontend

Les « callbacks », le mécanisme rendant votre application Dash interactive

L’un des points forts de Dash est son aspect interactif. Pour vous en convaincre, vous pouvez jeter un coup d’œil aux exemples donnés sur leur site.

Cela est rendu possible par le mécanisme de « callbacks ». Un callback permet de déclencher une fonction lorsqu’un utilisateur fait une action précise.

Un callback est un décorateur Python composé :

Chaque attribut d’un composant du layout peut être utilisé dans un callback. Le contenu, bien sûr, mais aussi le style CSS ou des attributs spécifiques au composant en question, tel le nombre de clics pour un bouton.

Les composants Dash pour enrichir votre application web

Dash permet d’ajouter de nombreux composants à vos web apps. Des tags HTML dont on a déjà parlé, mais aussi des graphes, des tableaux interactifs (Data Table), des menus déroulants en tous genres…, avec beaucoup d’options de customisation à chaque fois.

Cette diversité de composants toujours croissante rend Dash très flexible et permet de réaliser des applications web aux fonctionnalités riches et variées.

 

Après avoir compris le fonctionnement d’une application Dash, vous êtes armé pour développer votre première application web et plonger dans la documentation plutôt dense de cet outil. 

On vous invite aussi à lire nos articles sur Docker pour vous familiariser avec la conteneurisation et être capable de déployer votre web application une fois qu’elle sera prête.