web-dev-qa-db-fra.com

Chargement paresseux avec python et flask

J'ai créé un tableau de bord de données basé sur le Web qui montre 4 graphiques - chacun contenant une grande quantité de points de données.

Lorsque le point de terminaison de l'URL est visité Flask appelle mon script python qui récupère les données d'un serveur SQL, puis commence à les manipuler et sort finalement les graphiques bokeh.

Cependant, à mesure que ces graphiques s'agrandissent/il y a plus de graphiques à l'écran, le site Web prend beaucoup de temps à charger - car toute la fonction doit s'exécuter avant que quelque chose ne s'affiche.

Comment pourrais-je me charger paresseusement de les charger? C'est à dire. il charge le premier (graphique le plus important) et l'affiche pendant l'exécution de la fonction pour les autres graphiques, en les montrant au fur et à mesure de leur exécution (en montrant une sorte de barre de chargement où se trouvent chacun des graphiques ou quelque chose).

J'adorerais quelques conseils sur la façon de mettre en œuvre cela ou similaire.

Merci!

5
Hazzamataza

J'ai eu le même problème que toi. Le problème avec tout type de rendu flask) est que toutes les données sont traitées et transmises à la page (c'est-à-dire au client) simultanément, souvent à un coût élevé. Non seulement cela, mais le processus Web du serveur est assez lourdement chargé.

La solution que j'ai été forcée de mettre en œuvre car le commentaire suggéré était de charger la page avec des graphiques vierges puis, lors du montage, d'accéder à un flask api (via JS ajax) qui renvoie les données du graphique json au client Cela permet le chargement paresseux des graphiques, ainsi que la manipulation des données pouvant être effectuée sur un travailleur et non sur un serveur Web.

2
Attack68