Weiter zum Inhalt

Shiny für Python meistern: Der Einführungsguide für interaktive Webanwendungen

Lerne die Grundlagen von Shiny für Python kennen und erstelle im Handumdrehen interaktive Dashboards und Webanwendungen mit dieser neuen Bibliothek!
Aktualisiert 18. Sept. 2026

Mit KI erkunden

ChatGPTClaudePerplexity

Einfuhrung in Shiny und seine Vorteile

Wer mit R arbeitet, hat wahrscheinlich schon vom Shiny-Paket gehört, mit dem du interaktive Webanwendungen erstellen kannst. R Shiny kam 2012 auf den Markt, und die Nachfrage stieg rasant, als klar wurde, dass dieses leicht zu bedienende Paket Wissenschaftlerinnen, Wissenschaftlern und Analysten ermöglicht, interaktivere Modelle und Dashboards zu bauen.

2023 ist Shiny für Python aus der Alpha-Phase gekommen und bietet nun ein ähnliches, reaktives Framework für die Python-Sprache. Shiny ist für seine Einfachheit und Effizienz bekannt, wenn es darum geht, webbasierte Dashboards und Anwendungen zu erstellen — ganz ohne tiefgehende Webentwicklungskenntnisse.

Was ist Shiny?

Shiny ist ein Open-Source-Framework für Webanwendungen für R und, dank jüngster Entwicklungen, auch für Python. Es ermöglicht Datenprofis, ihre Analysen in interaktive Webanwendungen zu verwandeln. Der Kern von Shiny basiert auf dem Konzept der reaktiven Programmierung: Änderungen an Eingaben (zum Beispiel Slider oder Buttons) führen automatisch zu Updates bei Ausgaben (zum Beispiel Diagrammen oder Tabellen).

Das Shiny-Framework bietet viele Vorteile für die Erstellung webbasierten Anwendungen. Shiny setzt auf reaktive Programmierung, sodass du Apps bauen kannst, die dynamisch auf Nutzereingaben reagieren — für ein persönlicheres, engagierteres Erlebnis. Dank einer benutzerfreundlichen Bibliothek und umfassender Dokumentation können auch Personen mit grundlegenden Programmierkenntnissen interaktive, ansprechende Anwendungen entwickeln. Für Python-Fans baut Shiny jetzt eine Brücke zwischen dem reichen Data-Science-Ökosystem von Python und den Webentwicklungsmöglichkeiten von Shiny.

Hier sind einige Beispiele, wo sich das Shiny-Framework besonders lohnt:

  • Interaktive Dashboards: Shiny eignet sich perfekt, um interaktive Dashboards zu erstellen, mit denen Nutzende Daten in Echtzeit erkunden und visualisieren können. Diese Tipps helfen dir beim Design eines erstklassigen Dashboards.
  • Datenexploration: Analysten können mit Shiny Anwendungen entwickeln, die eine interaktive Datenerkundung mit spontaner Anpassung von Parametern und Visualisierungen ermöglichen.
  • Entscheidungsunterstützung: Shiny lässt sich für Entscheidungsunterstützungssysteme einsetzen und fördert datenbasierte Entscheidungen durch dynamische Einblicke.
  • Lehr- und Lernmaterial: Im Bildungsbereich ist Shiny ideal, um interaktive Lehrmaterialien und Demonstrationen zu erstellen.

Hinweis: Es ist wichtig zu verstehen, dass Shiny für R und Shiny für Python verschieden sind. Auch wenn die zugrunde liegenden Konzepte ähnlich sind, sind Syntax und Terminologie nicht austauschbar. Wenn du Shiny für R beherrschst, hast du einen Startvorteil für Shiny für Python, musst aber dennoch die Unterschiede lernen, die für Python eingeführt wurden.

Shiny im Vergleich mit anderen Webframeworks

Wenn du Webanwendungen für Data Science planst, ist es hilfreich zu wissen, wie sich Shiny gegenüber anderen Frameworks schlägt.

Shiny bietet eine einzigartige Kombination aus Einfachheit und Vielseitigkeit. Allerdings ist die Python-Version im Vergleich zu anderen Frameworks noch relativ neu. Shiny ist so konzipiert, dass jeder mit Python-Kenntnissen Webanwendungen entwickeln kann.

Neben der leichten Bedienbarkeit ist Shiny für nahtlose Skalierung ausgelegt und nutzt Caching und selektive Reaktivität, um das reaktive Framework effizient zu halten. Das verschafft ihm Vorteile gegenüber manchen anderen Webframeworks. Seine deklarative Syntax und das reaktive Programmiermodell machen es auch für Data Analysts zugänglich, die damit interaktive Anwendungen ohne tiefes Webentwicklungswissen bauen können.

Andere Frameworks wie Dash und Streamlit haben wiederum eigene Stärken. Dash setzt auf pythonische Syntax und priorisiert schnelle Entwicklung. Streamlit überzeugt beim schnellen Prototyping mit automatischem Rendering, startet aber beim Ändern von Eingaben das gesamte Programm neu — was bei wachsenden Anwendungen ineffizient wird. Flask und Django sind allgemeine Webframeworks, die viel Flexibilität und Kontrolle bieten, aber meist mehr Webentwicklungsexpertise erfordern. Wenn dich das interessiert, lies DataCamps Django-Tutorial.

Neben codebasierten Webplattformen setzen Analysten für ähnliche Dashboard-Anforderungen auch Tableau und Power BI ein. Diese Visualisierungsplattformen bieten mächtige Werkzeuge, sind aber lizenzpflichtig. Gegenüber reinem Code sind ihre Analysefunktionen begrenzt, sodass komplexeres Modellieren und Analysieren meist anderswo erfolgt. Mehr zu Power BI bei DataCamp findest du hier.

Bei der Wahl des passenden Frameworks für eine Data-Science-Anwendung solltest du Projektanforderungen, Sprachvorlieben und den Bedarf an Spezialfunktionen bedenken. Auch wenn andere Frameworks punkten können, macht Shiny die besondere Mischung aus Einfachheit und Flexibilität in Kombination mit Python zu einer überzeugenden Wahl, wenn du deine Data-Science-Projekte auf das nächste Level heben willst.

Framework

Wichtigste Merkmale

Sprachen

Lernkurve

Einsatzszenario

Shiny

Einfach und vielseitig

R, Python

Niedrig

Interaktive Anwendungen und Visualisierungen

Dash

Pythonische Syntax

Python

Mittel

Schnelle Entwicklung schlanker Webapps

Streamlit

Schnelles Prototyping mit automatischem Rendering

Python

Niedrig

Rapid Prototyping für Data Apps

Flask

Allgemeines Webframework

Python

Mittel bis hoch

Vollwertige Webanwendungen

Django

Hochwertiges Python-Webframework

Python

Mittel bis hoch

Skalierbare Webanwendungen und -services

Tableau/Power BI

Datenvisualisierungsplattformen

Nicht zutreffend

Niedrig

Business-Intelligence-Visualisierungen

Das Entwicklungsumfeld einrichten

Einer der großen Vorteile von Shiny für Python: Es gibt einen Web-Editor, in dem du deine App erstellen kannst, ohne etwas herunterzuladen oder zu installieren. Dieser Web-Editor liefert mehrere Beispiel-Apps und Funktionen, mit denen du schnell starten und deine neue Shiny-Anwendung ausprobieren kannst.

Früher oder später willst du Shiny aber wahrscheinlich lokal ausführen. In diesem Abschnitt führst du die Installation von Python, Shiny und den jeweiligen Abhängigkeiten durch und nimmst die nötigen Konfigurationen vor, damit deine lokale Umgebung reibungslos läuft.

Installation von Python

Um mit Shiny offline zu arbeiten, musst du Python auf deinem Rechner installiert haben. Falls noch nicht geschehen, besuche die offizielle Python-Website unter python.org und lade die neueste Version für dein Betriebssystem herunter. Wenn Python bereits installiert ist, empfehle ich ein Update auf die neueste Version, damit Shiny korrekt läuft.

Führe das Installationsprogramm aus und setze während der Installation das Häkchen bei "Add Python to PATH". So lässt sich Python leichter über die Kommandozeile starten. Öffne eine Eingabeaufforderung oder ein Terminal und gib python --version ein, um zu prüfen, ob Python erfolgreich installiert wurde. Anschließend siehst du die Versionsnummer. Optional kannst du für mehr Komfort eine integrierte Entwicklungsumgebung (IDE) installieren.

Installation von Shiny

Sobald Python eingerichtet ist, kannst du Shiny installieren. Mit der neuesten Python-Version öffnest du einfach eine Eingabeaufforderung oder ein Terminal und installierst die Shiny-Bibliothek für Python mit pip:

pip install shiny

Wenn du statt pip conda verwendest, nutze diesen Befehl:

conda install -c conda-forge shiny

Je nach Systemkonfiguration benötigt Shiny weitere Abhängigkeiten. Stelle sicher, dass diese installiert sind, indem du den Anweisungen in der Shiny-Dokumentation folgst.

Konfiguration der Entwicklungsumgebung

Nachdem Python und Shiny installiert sind, solltest du noch drei Punkte angehen.

  1. IDE: Wenn du eine IDE wie VS Code verwendest, kannst du eine Erweiterung installieren, damit Shiny-Ausgaben direkt in der IDE gerendert werden.
  2. Versionskontrolle: Nutze ein Versionskontrollsystem wie Git, um Änderungen am Code nachzuvollziehen. Initialisiere ein Git-Repository in deinem Projektordner, um deine Shiny-Anwendungen einfacher zu verwalten und im Team daran zu arbeiten.
  3. Strukturierung des Codes: Organisiere deine Projektstruktur. Lege separate Ordner für Shiny-Apps, Datensätze und weitere Ressourcen an. So bleibt dein Code sauber und übersichtlich — eine Best Practice für jedes Coding-Projekt.

Mit der eingerichteten und konfigurierten Entwicklungsumgebung bist du bereit, interaktive Webanwendungen mit Shiny für Python zu erstellen.

Eine einfache Shiny-App erstellen

Aufbau einer Shiny-App verstehen

Eine Shiny-App besteht aus zwei Hauptkomponenten: der Benutzeroberfläche (UI) und der Serverlogik.

Die UI definiert das Erscheinungsbild der App und welche Elemente zur Interaktion bereitstehen. Alles, was die Nutzenden sehen oder bedienen können, ist Teil der UI — etwa Slider, Buttons und Diagramme.

Die UI wird mit Funktionen erstellt, die mit "ui." beginnen, zum Beispiel ui.input_numeric, ui.input_slider und ui.output_text. Diese Funktionen werden in eine Page-Funktion eingebettet, typischerweise ui.page_fluid, die das Grundlayout der Seite beschreibt.

Die Serverlogik legt fest, wie sich die App verhält und auf Eingaben reagiert. Sie besteht aus Funktionen, die Eingaben aus der UI entgegennehmen, verarbeiten und entsprechende Ausgabeelemente aktualisieren. Die Serverlogik wird mit der server-Funktion erstellt und nutzt reaktive Ausdrücke, um Inputs und Outputs zu verknüpfen.

Sobald UI und Serverlogik definiert sind, werden sie zur fertigen Anwendung verbunden, die den Namen "app" tragen muss.

image3.png

Das reaktive Programmiermodell verstehen

Betrachte dieses Beispiel aus der Shiny-Dokumentation.

Dieses Beispiel nimmt eine Nutzereingabe über einen Slider entgegen und nutzt sie für eine Berechnung, deren Ergebnis im Textfeld unter dem Slider angezeigt wird. Dieses sehr einfache Beispiel läuft im lokalen Browser in VS Code.

Wie du an dieser kurzen Demo siehst, liegt die Magie von Shiny in der Interaktivität. Der Motor dahinter ist das reaktive Programmiermodell. In Shiny definieren wir reaktive Ausdrücke, die Abhängigkeiten zwischen Eingaben und Ausgaben herstellen. Ändert sich eine Eingabe, werden alle abhängigen reaktiven Ausdrücke und Ausgaben automatisch aktualisiert. Diese Reaktivität ist der Kern von Shiny. Hier findest du mehr Details zur Reaktivität in Shiny.

Es gibt einige Schlüsselelemente, die diese Reaktivität ermöglichen.

Erstens die reaktive Berechnung, also reactive.Calc. Dabei handelt es sich um eine Berechnung auf Basis einer Eingabe. Das Ergebnis wird zwischengespeichert, bis sich die Eingabe ändert — dann läuft die Berechnung mit dem neuen Input erneut. So reagiert deine App effizient auf Nutzereingaben. Reaktive Berechnungen nutzen den Decorator @reactive.Calc, wie im folgenden Beispiel.

@reactive.Calc
def double_number():
	return input.number() * 2

Ein weiteres reaktives Element ist der reaktive Effekt, also reactive.Effect. Ein reaktiver Effekt gibt beim Ausführen keinen Wert zurück, sondern löst eine Aktion aus, zum Beispiel das Ändern einer Variablen oder das Speichern einer Datei. Auch er läuft erneut, wenn sich Eingaben ändern. Der häufigste reactive.Effect ist der @output-Decorator, der wie im Beispiel unten einen Text mit dem Ergebnis in die Message-Queue schreibt.

@output
@render.text
def txt():
	return f"The value of x is {input.x()}"

Manchmal soll die Reaktivität nicht sofort greifen. Wenn dein Modell beispielsweise rechenintensiv ist, willst du möglicherweise warten, bis mehrere Parameter aktualisiert wurden, bevor es erneut ausgeführt wird. In diesem Fall bieten reactive.event() oder reactive.isolate() Möglichkeiten, die Reaktivität deiner App zu steuern.

Mehr Interaktivität für deine Shiny-App

Wenn die App komplexer werden soll

Mit dieser Reaktivitätslogik kann Shiny für Python so einfach oder so komplex sein, wie du es brauchst. Du kannst Radiobuttons, Checkboxen, Slider, Textfelder, Diagramme, Karten und vieles mehr hinzufügen! Hier ein etwas umfangreicheres Beispiel aus der Shiny-Dokumentation.

In diesem Beispiel erzeugen wir eine Heatmap mit Zufallsdaten. Über Radiobuttons wählt der Nutzer den Heatmap-Stil, und der Slider verändert die Farbskala. Posit (das Unternehmen hinter Shiny) hat auf der Website weitere Beispiele — darunter diesen unterhaltsamen Wordle-Klon.

Abseits des Spieltriebs gibt es zahlreiche sinnvolle Anwendungen. Du könntest ein Modell bauen, das Umweltfaktoren wie Salzgehalt und Temperatur nutzt, um Algenblüten vorherzusagen. Forschende im Feld geben aktuelle Werte in deine Shiny-App ein und erhalten eine Vorhersage in Echtzeit.

Oder du entwickelst ein Modell, das jährliche Ertragsprognosen zeigt, wenn bestimmte Bedingungen erfüllt sind. Manager könnten mit deiner App verschiedene Szenarien durchspielen, indem sie andere Verkaufszahlen eingeben oder Produkte per Checkbox auswählen — und sehen die Prognose sofort aktualisiert.

Die Einsatzmöglichkeiten sind in vielen Branchen zahlreich.

Arten von Inputs und Outputs

Shiny bietet eine Vielzahl von Eingabe- und Ausgabeoptionen für unterschiedliche Visualisierungs- und Interaktionsbedürfnisse. Hier ist eine einfache Tabelle der gängigen Inputs und Outputs in Shiny für Python.

Inputs

Wozu dient das?

Action Button Input

Stellt einen Button für die Auswahl bereit.

Action Link Input

Ermöglicht das Klicken auf einen Link.

Text input

Ein einfaches Textfeld für eine Textzeile.

Numeric input

Numerisches Eingabefeld mit Pfeilen für Hoch/Runter.

Slider input

Erstellt einen numerischen Slider.

Checkbox input

Erzeugt eine einzelne Checkbox für True/False-Fälle.

Switch input

Erzeugt einen einzelnen Ein/Aus-Schalter.

Checkbox group input

Erstellt mehrere Checkboxen für Mehrfachauswahl.

Select input

Stellt ein Dropdown-Menü mit Auswahlmöglichkeiten bereit.

Radio buttons input

Erzeugt Radiobuttons und erzwingt eine Einzelwahl.

Text area input

Größeres Textfeld mit anpassbarer Fenstergröße für längere Texte.

Date input

Datumsfeld mit Kalenderauswahl.

Date range input

Zwei gekoppelte Datumsfelder für die Eingabe eines Bereichs.

Password input

Erzeugt ein Textfeld, das die Eingabe verbirgt.

—————————————————————————————————————————

Outputs

Wozu dient das?

Text output

Schreibt Text in einfachem HTML.

Verbatim text output

Schreibt Text in einem nichtproportionalen Codeblock.

UI output

Ermöglicht eine dynamische UI basierend auf Eingaben.

Plot output

Erzeugt ein Diagramm mit gängigen Python-Bibliotheken wie matplotlib.

Table output

Erstellt eine einfache Tabelle mit Spaltenüberschriften.

Data Frame / Grid output

Erstellt eine anpassbare Tabelle mit Filtern, Rasterlinien und Zeilenlimit.

Eine vollständige Liste der Shiny-Komponenten findest du auf dieser Seite.

Die Benutzeroberfläche in Shiny für Python anpassen

Layouts und Themes

Shiny bietet flexible Anpassungsmöglichkeiten für die Benutzeroberfläche über verschiedene Layouts mittels einer Page-Funktion. Am häufigsten wird page_fluid() verwendet — ein responsives Design, das sich an verschiedene Bildschirmgrößen anpasst. Ein festes Seitenlayout, geeignet für konkrete Designanforderungen, erreichst du mit der Page-Funktion page_fixed().

Shiny nutzt HTML, um seine webbasierten Apps zu erstellen. Du kannst daher CSS-Themes zur Gestaltung deiner App einsetzen. Mit eigenem CSS passt du die Optik deiner Shiny-App an deine Ästhetik oder das Corporate Design an. Top of Form

Eigene Widgets und Erweiterungen einbinden

Shiny unterstützt ipywidgets für eine Vielzahl interaktiver Plots, Karten, 3D-Visualisierungen und Medienstreaming. Außerdem gibt es Funktionen für weitere Python-Widgets, die als HTML-Datei gespeichert werden können. Mit eigenen Widgets kannst du deine Shiny-App auf spezielle Use Cases zuschneiden und ein noch individuelleres Nutzererlebnis schaffen.

Deine Shiny-für-Python-App bereitstellen

Erläuterung der verschiedenen Bereitstellungsoptionen

Sobald du eine überzeugende Shiny-App gebaut hast, willst du sie wahrscheinlich einem größeren Publikum zeigen — für dein Portfolio oder für einen Kunden —, indem du sie im Web bereitstellst. Shiny unterstützt verschiedene Deployment-Optionen für unterschiedliche Bedarfe.

Lokale Bereitstellung: Du kannst deine Shiny-App auf einem lokalen Server ausrollen und so innerhalb deiner Organisation oder für eine definierte Nutzergruppe verfügbar machen.

Cloud-Plattformen: Cloud-Plattformen bieten skalierbare und leicht zugängliche Lösungen für das Deployment von Shiny-Apps. Beliebte Optionen sind:

  • Shinyapps.io: Posits eigene Plattform speziell für das Hosting von Shiny-Anwendungen.
  • Heroku: Eine Cloud-Plattform, die die Bereitstellung von Shiny-Apps unterstützt.
  • AWS, Azure und Google Cloud: Große Cloud-Anbieter, auf denen du Shiny-Apps auf virtuellen Maschinen oder in Containern betreiben kannst.

ShinyLive: Shiny bietet eine neue Möglichkeit, Shiny-Anwendungen direkt im Webbrowser auszuführen — ohne separaten Server mit laufendem Python. Mithilfe von WebAssembly und Pyodide können Shiny-Anwendungen laufen, ohne dass du Python oder Shiny installieren musst. Diese Plattform begrenzt die verfügbaren Python-Pakete und ist möglicherweise nicht so sicher wie andere Lösungen, eignet sich aber gut, um nicht sensiblem Code schnell zu teilen.

Fazit

Shiny für Python ist ein spannender Neuzugang in der Web-App-Entwicklung. Damit hebst du dein Datenprojekt deutlich an, ohne viel Zeit in Webentwicklung zu investieren. Wenn du Shiny für R ausprobieren willst, sieh dir diesen Shiny-Grundlagenkurs von DataCamp an sowie den Kurs zum Erstellen von Dashboards mit R Shiny. Wenn die Basics sitzen, übe deine neuen Kompetenzen mit einer Shiny-Fallstudie!


Amberle McKee's photo
Author
Amberle McKee
LinkedIn

Ich bin promoviert und habe 13 Jahre Erfahrung in der Arbeit mit Daten in der biologischen Forschung. Ich entwickle Software in verschiedenen Programmiersprachen, darunter Python, MATLAB und R. Meine Leidenschaft ist es, meine Liebe zum Lernen mit der Welt zu teilen.

Themen
Python
Datenwissenschaft

Starte heute deine Shiny-Reise!

Kurs

Webanwendungen mit Shiny in R entwickeln

4 Std.
33.4K
Mit Shiny kannst du interaktive Web-Apps direkt in R erstellen – und deinem Team Daten als Dashboard oder Visualisierung bereitstellen.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow