Skip to content

Streamlit Session State: Der ultimative Leitfaden, um loszulegen

Streamlit hat die Art und Weise, wie wir uns der Webentwicklung nähern, revolutioniert, insbesondere im Bereich der Datenwissenschaft und des maschinellen Lernens. Eine seiner leistungsstärksten Funktionen ist der Session State. Dieser Artikel soll einen umfassenden Leitfaden zum Streamlit Session State, seiner Verwendung, den Vorteilen und dem Vergleich mit anderen Zustandsmanagement-Tools bieten.

Haben Sie schon von diesem beeindruckenden Datenanalyse- und Datenvisualisierungstool gehört, das Ihre Streamlit App in Tableau verwandelt?

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die Ihnen dabei hilft, eine Tableau-ähnliche Benutzeroberfläche mühelos in Ihre eigene Streamlit App einzubetten.

PyGWalker zur Datenvisualisierung in Streamlit (opens in a new tab)

Einführung in Streamlit und Session State

Was ist Streamlit?

Streamlit ist eine Open-Source-Python-Bibliothek, mit der Entwickler interaktive Webanwendungen einfach erstellen können. Es ist besonders beliebt bei Datenwissenschaftlern und maschinellen Lerningenieuren aufgrund seiner Einfachheit und der Möglichkeit, datengesteuerte Webanwendungen schnell zu erstellen.

Verständnis des Session State in Streamlit

Im Kontext der Webentwicklung bezieht sich eine Sitzung auf den Zeitraum, in dem ein Benutzer mit einer Webanwendung interagiert. Die Daten, die die Anwendung über diese Benutzerinteraktion speichert, werden als Session State bezeichnet. Im Streamlit ermöglicht der Session State Entwicklern das Speichern von Daten über erneute Ausführungen hinweg und ermöglicht die Erstellung interaktiverer und dynamischerer Anwendungen.

Nutzung des Streamlit Session State

Schneller Einstieg in den Streamlit Session State

Die Verwendung des Streamlit Session State ist unkompliziert. Sie ermöglicht das Speichern von Daten, die über erneute Ausführungen der Anwendung erhalten bleiben. Wenn Sie beispielsweise die Eingabe eines Benutzers aus einem Texteingabe-Widget speichern möchten, können Sie sie im Session State speichern. Hier sind die Schritte:

  1. Installieren Sie Streamlit, falls Sie es noch nicht haben: pip install streamlit
  2. Erstellen Sie eine neue Python-Datei und importieren Sie Streamlit: import streamlit as st
  3. Initialisieren Sie Ihren Session State: if 'my_var' not in st.session_state: st.session_state['my_var'] = 0
  4. Verwenden Sie Ihren Session State in Ihrer App: st.session_state['my_var'] += 1

Hier ist der Beispielcode:

import streamlit as st
 
if 'user_input' not in st.session_state:
    st.session_state['user_input'] = ''
 
user_input = st.text_input("Geben Sie einen Text ein")
if user_input:
    st.session_state['user_input'] = user_input
 
st.write(f"Sie haben eingegeben: {st.session_state['user_input']}")

In diesem Beispiel wird die Eingabe des Benutzers im Session State gespeichert und bleibt auch dann erhalten, wenn die Anwendung erneut ausgeführt wird.

Über die Grundlagen hinaus: Erweiterte Anwendungsfälle und bewährte Verfahren

Sobald Sie mit den Grundlagen vertraut sind, beginnt der eigentliche Spaß. Streamlit Session State eröffnet eine Welt von erweiterten Anwendungsfällen. Sie können ihn beispielsweise verwenden, um Informationen zur Benutzerauthentifizierung zu speichern. Hier ist ein einfaches Beispiel:

if 'username' not in st.session_state:
    st.session_state['username'] = ''
 
username = st.text_input("Geben Sie Ihren Benutzernamen ein")
if username:
    st.session_state['username'] = username
 
st.write(f"Hallo {st.session_state['username']}!")

In diesem Beispiel wird der Benutzername des Benutzers im Session State gespeichert und bleibt auch dann erhalten, wenn die Anwendung erneut ausgeführt wird.

Denken Sie daran, dass mit großer Macht auch große Verantwortung einhergeht. Es ist wichtig, Ihren Session State effektiv zu verwalten, um sicherzustellen, dass Ihre Anwendung reibungslos läuft.

Die Kraft des Streamlit Session State entfesseln

Streamlit Session State: Eine Revolution in der Webentwicklung

Streamlit Session State ist eine Revolution in der Webentwicklung. Sie ermöglicht die Erstellung dynamischer, interaktiver Anwendungen, da Daten über erneute Ausführungen hinweg erhalten bleiben können. Dies ist ein Segen für Anwendungen, die Benutzereingaben erfordern oder mehrere Stufen oder Schritte haben.

Streamlit Session State: Eine geheime Waffe in Maschinellem Lernen und Datenwissenschaft

In der Welt des maschinellen Lernens und der Datenwissenschaft ist Streamlit Session State die geheime Waffe, von der Sie nicht wussten, dass Sie sie brauchen. Sie kann verwendet werden, um alles von:

  • Modellparametern
  • Benutzereingaben für Datenfilter
  • Zwischenergebnissen der Datenverarbeitung

zu speichern.

Dies bedeutet, dass Sie unnötige Berechnungen vermeiden und die Leistung Ihrer Anwendung maximieren können.

Das Kleingedruckte: Leistung und Einschränkungen des Streamlit Session State

Obwohl der Streamlit Session State ein leistungsstarkes Werkzeug ist, ist es auch wichtig, seine Einschränkungen zu beachten. Der Session State wird im Speicher gespeichert, sodass er den Speicherbedarf Ihrer Anwendung erhöhen kann. Es ist daher entscheidend, den Session State ordnungsgemäß zu verwalten und das Speichern großer Datenmengen zu vermeiden, die zu Leistungsproblemen führen könnten.

Streamlit Session State vs andere Zustandsmanagement-Tools

Vergleich: Streamlit Session State vs st.cache

Streamlit bietet eine weitere Funktion für das Zustandsmanagement: st.cache. Sowohl st.cache als auch Session State ermöglichen das Speichern von Daten über erneute Ausführungen hinweg, haben jedoch unterschiedliche Zwecke. st.cache ist darauf ausgelegt, die Ergebnisse langlaufender Berechnungen im Cache zu speichern und die Leistung zu verbessern, während Session State dazu dient, Benutzerinteraktionsdaten über erneute Ausführungen hinweg zu speichern.

Hier ist ein einfaches Beispiel für die Verwendung von st.cache:

@st.cache
def aufwändige_berechnung():
    # Hier findet eine aufwändige Berechnung statt
    return ergebnis
 
ergebnis = aufwändige_berechnung()

In diesem Beispiel wird das Ergebnis der aufwändigen Berechnung zwischengespeichert und in nachfolgenden Ausführungen wiederverwendet, was die Leistung der Anwendung verbessert.

Hast du von diesem großartigen Data Analysis & Data Visualisation Tool gehört, das deine Streamlit App in Tableau verwandelt?

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die dir dabei hilft, eine Tableau-ähnliche Benutzeroberfläche problemlos in deine eigene Streamlit-App einzubetten.

Schaue dir dieses erstaunliche Video von Wie man Daten mit PyGWalker in Python erkundet (opens in a new tab) an, das die detaillierten Schritte zur Stärkung deiner Streamlit-App mit dieser leistungsstarken Data Visualization Python Library zeigt!


Ein besonderer Dank geht an Sven und seine großartige Unterstützung (opens in a new tab) für die PyGWalker-Community!

Zusätzlich kannst du auch die PyGWalker GitHub-Seite (opens in a new tab) für weitere PyGWalker-Beispiele besuchen.

Streamlit Session State vs Redux: Eine detaillierte Analyse

Redux ist eine beliebte State-Management-Bibliothek für JavaScript-Anwendungen, insbesondere für solche, die mit React erstellt wurden. Es bietet einen zentralisierten Speicher für Zustände, die in der gesamten Anwendung verwendet werden müssen, und stellt Regeln auf, die sicherstellen, dass der Zustand nur auf vorhersagbare Weise aktualisiert werden kann.

Auf der anderen Seite ist Streamlit Session State ein Feature der Streamlit-Bibliothek, das Daten über Neuausführungen der Anwendung hinweg speichert. Es wird hauptsächlich in serverseitigen Python-Anwendungen verwendet, um interaktive und dynamische Webanwendungen zu erstellen.

Obwohl sowohl Redux als auch Streamlit Session State den gleichen Zweck erfüllen, werden sie in unterschiedlichen Kontexten verwendet und haben unterschiedliche Funktionen:

  • Programmiersprache: Redux wird mit JavaScript verwendet, während Streamlit Session State mit Python verwendet wird.
  • Anwendungstyp: Redux wird typischerweise in clientseitigen Anwendungen verwendet, während Streamlit Session State in serverseitigen Anwendungen verwendet wird.
  • Zustandsspeicherung: In Redux bleibt der Zustand so lange erhalten, wie der Benutzer auf der Website ist oder bis der Zustand explizit gelöscht wird. In Streamlit bleibt der Sitzungszustand über Neuausführungen der Anwendung hinweg erhalten, wird aber gelöscht, wenn der Benutzer die Anwendung schließt.
  • Lernkurve: Redux hat aufgrund seiner Konzepte wie Reducer, Actions und Middleware eine steilere Lernkurve. Der Streamlit Session State ist hingegen einfacher und leichter zu verwenden, insbesondere für diejenigen, die bereits mit Python vertraut sind.

Streamlit Session State vs Local Storage und Context API

Local Storage und die Context API sind andere State-Management-Lösungen, die in JavaScript-Anwendungen verwendet werden.

Local Storage ist ein Web-Speicherobjekt, das es ermöglicht, Daten dauerhaft im Browser des Benutzers zu speichern. Die in Local Storage gespeicherten Daten haben keine Ablaufzeit und bleiben auch nach dem Schließen und erneuten Öffnen des Browsers erhalten. Es eignet sich zum Speichern kleiner Datenmengen wie Benutzereinstellungen oder Sitzungsdaten.

Die Context API, eingeführt in React 16.3, ermöglicht das Teilen von Daten, die für einen Baum von React-Komponenten als "global" betrachtet werden können, wie z.B. der aktuell angemeldete Benutzer, das Thema oder die Sprache. Sie ist darauf ausgelegt, Daten zu teilen, die für einen Baum von React-Komponenten als global betrachtet werden können.

Obwohl diese Tools für sich genommen leistungsstark sind, lassen sie sich nicht direkt mit dem Streamlit Session State vergleichen, da sie in unterschiedlichen Programmiersprachen und Anwendungskontexten verwendet werden:

  • Programmiersprache: Sowohl Local Storage als auch Context API werden mit JavaScript verwendet, während Streamlit Session State mit Python verwendet wird.
  • Datenpersistenz: Local Storage ermöglicht das Persistieren von Daten, auch wenn der Browser geschlossen und erneut geöffnet wird, während die Context API und der Streamlit Session State diese Funktion nicht haben.
  • Anwendungsfälle: Local Storage eignet sich zum Speichern kleiner Datenmengen wie Benutzereinstellungen oder Sitzungsdaten. Die Context API eignet sich zum Teilen von globalen Daten in einem Baum von React-Komponenten. Der Streamlit Session State eignet sich zum Speichern von Daten, die über Neuausführungen der Anwendung hinweg erhalten bleiben sollen.

Umgang mit komplexen Datentypen im Streamlit Session State

Der Streamlit Session State beschränkt sich nicht nur auf die Speicherung einfacher Datentypen wie Ganzzahlen oder Zeichenketten. Er kann auch komplexe Datentypen wie Listen, Wörterbücher, Mengen und sogar benutzerdefinierte Objekte verarbeiten. Dadurch wird er zu einem vielseitigen Werkzeug für das Verwalten des Zustands in deinen Streamlit-Anwendungen.

Du kannst beispielsweise eine Liste von Benutzereingaben im Sitzungszustand speichern:

if 'user_inputs' not in st.session_state:
    st.session_state['user_inputs'] = []
 
user_input = st.text_input("Gib einen Text ein")
if user_input:
    st.session_state['user_inputs'].append(user_input)
 
st.write(f"Du hast eingegeben: {st.session_state['user_inputs']}")

In diesem Beispiel wird jedes Mal, wenn der Benutzer einen Text eingibt, dieser der im Sitzungszustand gespeicherten Liste hinzugefügt.

Fazit

Der Streamlit Session State ist ein leistungsstolles Werkzeug zum Verwalten des Zustands in deinen Streamlit-Anwendungen. Er ermöglicht die Erstellung interaktiver und dynamischer Anwendungen, indem Daten über Neuausführungen hinweg gespeichert werden. Egal, ob du Anfänger bist und gerade erst mit Streamlit anfängst oder ein erfahrener Entwickler bist, der seine Anwendungen optimieren möchte, das Verständnis und die effektive Nutzung des Session State können den Webentwicklungsprozess erheblich verbessern.

Häufig gestellte Fragen

Was ist der Session State in Streamlit?

Der Session State in Streamlit ist ein Feature, das es ermöglicht, Daten über Neuausführungen der Anwendung hinweg zu speichern. Er wird verwendet, um Daten über Benutzerinteraktionen zu speichern, was die Erstellung interaktiver und dynamischer Anwendungen ermöglicht.

Was sind die Nachteile von Streamlit? Während Streamlit ein leistungsfähiges Werkzeug zur Erstellung interaktiver Webanwendungen ist, hat es doch einige Einschränkungen. Zum Beispiel ist es hauptsächlich für das Prototyping konzipiert und eignet sich möglicherweise nicht für den Aufbau komplexer, groß angelegter Webanwendungen. Außerdem kann es als relativ neue Bibliothek einige Funktionen vermissen, die in ausgereifteren Webentwicklungs-Frameworks vorhanden sind.

Laufen Streamlit-Sitzungen ab?

Streamlit-Sitzungen laufen nicht automatisch ab. Die Daten im Sitzungsstatus werden jedoch gelöscht, wenn der Benutzer die Anwendung schließt.

Wie verwendet man den Sitzungsstatus in ASP.NET?

Der Sitzungsstatus in ASP.NET ist eine Funktion, mit der Sie temporär benutzerspezifische Werte speichern und abrufen können. Sie können ihn aufrufen, indem Sie das Session-Objekt aufrufen und Werte zuweisen, z. B. Session["UserName"] = "John Doe";. Beachten Sie, dass dies sich vom Streamlit-Sitzungsstatus unterscheidet, der in Python-Anwendungen verwendet wird.