webentwicklung-frage-antwort-db.com.de

Was sind die Vor- und Nachteile von Dash by Plotly vs Jupyter Dashboards?

Dash by Plotly sieht nach einer großartigen Möglichkeit für einen Python Entwickler aus, interaktive Web-Apps zu erstellen, ohne Javascript und Front-End-Web-Entwicklung lernen zu müssen. Ein weiteres großartiges Projekt mit ähnlichen Zielen und Geltungsbereich ist Jupyter Dashboards .

Was sind die Vor- und Nachteile von jedem?

Insbesondere in einer Mehrbenutzer-Bereitstellung? Ich fand auch die Plotly-Dokumentation ziemlich unklar, was genau Open Source ist und ob die Daten in diese hochgeladen werden oder ob das Plotten offline durchgeführt werden kann. Es gibt eindeutig zwei Modi für die zugrunde liegende Plotly-Bibliothek, aber in welchem ​​Modus arbeitet Dash?

29
snth

Haftungsausschluss: Ich schrieb Dash :)

Ich würde nur empfehlen, beide auszuprobieren. Das Durchlaufen des Lernprogramms dauert ungefähr 30 Minuten.

Ich würde auch empfehlen, Folgendes zu überprüfen:

  • Der Dash Ansage Brief . Dies ist eine umfassende Einführung in Dash, einschließlich Beispielen, Architektur und einer Diskussion über Lizenzierung (MIT).
  • Live-Beispiele für Dash-Apps in der Dash App Gallery

Es gibt einige übergeordnete Funktionen von Dash (diese werden im Ankündigungsschreiben ausführlicher behandelt.)

  • Dash-Apps benötigen für den Start nur sehr wenig Boilerplate - eine einfache "Hallo Welt" -Dash-App besteht aus weniger als 50 Codezeilen.
  • Dash-Apps werden vollständig aus Python generiert, sogar aus HTML und JS
  • Dash Apps binden interaktive Komponenten (Dropdowns, Diagramme, Schieberegler, Texteingaben) mit Ihrem eigenen Python Code durch reaktives Dash "callbacks".
  • Dash-Apps sind "reaktiv", was bedeutet, dass es einfach ist, über komplizierte Benutzeroberflächen mit mehreren Eingaben, mehreren Ausgaben und Eingaben, die von anderen Eingaben abhängen, nachzudenken.
  • Dash-Apps sind von Natur aus Mehrbenutzer-Apps, da sich der "Status" der App vollständig im Client befindet: Mehrere Benutzer können Apps anzeigen und unabhängige Sitzungen abhalten.
  • Da Dash ein traditionelles zustandsloses Backend hat, ist es einfach, Apps zu skalieren, um Hunderte oder Tausende von Benutzern zu bedienen, indem die Anzahl der Arbeitsprozesse erhöht wird. Anfragen werden an jeden verfügbaren Mitarbeiter gesendet, sodass eine kleine Anzahl von Mitarbeitern eine größere Anzahl von Sitzungen abwickeln kann.
  • Dash verwendet React.js zum Rendern von Komponenten und enthält Pluginsystem zum Erstellen eigener Dash-Komponenten mit React.
  • Die Komponente Graph von Dash ist interaktiv und ermöglicht es Autoren von Dash-Apps, Anwendungen zu schreiben, die auf das Schweben, Klicken oder Auswählen von Punkten im Diagramm reagieren.

Ich fand die Plotly-Dokumentation auch ziemlich unklar, was genau Open Source ist und ob die Daten in diese hochgeladen werden oder ob das Plotten offline durchgeführt werden kann.

Es klingt so, als würde dies auf die Grafikbibliothek plotly.py verweisen. Dies ist eine separate Bibliothek als Dash. Beide Bibliotheken verwenden die lizenzierte Bibliothek MIT plotly.js zum Erstellen von Diagrammen. plotly.js Sendet keine Daten an den Plot-Server - es ist vollständig clientseitig.

Die Bibliothek plotly.py Enthält Methoden zum Senden der Daten an Ihr Online-Plot-Konto, um die Diagramme zu hosten, freizugeben und zu bearbeiten. Sie ist jedoch vollständig aktiviert. Auch hier ist plotly.py Eine separate Bibliothek als Dash. plotly.py Dient zur interaktiven grafischen Darstellung, Dash zur Erstellung interaktiver Anwendungen (die Diagramme enthalten können).

Insbesondere in einer Mehrbenutzer-Bereitstellung? Es gibt eindeutig zwei Modi für die zugrunde liegende Plotly-Bibliothek, aber in welchem ​​Modus arbeitet Dash?

  • Dash ist MIT lizenziert. Sie können Dash auf Ihren eigenen Servern oder auf Ihrem Computer ausführen.
  • Dash verwendet einen Flask - Server, sodass Sie Dash-Apps auf die gleiche Weise bereitstellen können, wie Sie Flask - Apps bereitstellen würden
  • Plotly-Lizenzen Dash Deployment Server , ein Serverprodukt, das auf Ihrer eigenen Infrastruktur installiert werden kann. Dash Deployment Server ist ein "PaaS", mit dem Sie Apps auf Ihren eigenen Servern, SSO/LDAP-Authentifizierung, Support-Pläne und mehr problemlos bereitstellen können.
52
Chris P