Heim  >  Artikel  >  Backend-Entwicklung  >  Optimierte Part-Mastering-Layouts

Optimierte Part-Mastering-Layouts

Linda Hamilton
Linda HamiltonOriginal
2024-11-05 21:39:02900Durchsuche

Streamlit Part Mastering Layouts

Beherrschen von Layouts in Streamlit: Eine Schritt-für-Schritt-Anleitung

Streamlit, ein weit verbreitetes Framework zum Erstellen interaktiver Python-Anwendungen, insbesondere für Datenvisualisierung, Dashboards und Demos zum maschinellen Lernen, zeichnet sich nicht nur durch seine Benutzerfreundlichkeit aus, sondern auch durch seine Fähigkeit, optisch ansprechende und intuitive Layouts zu erstellen . In diesem Blogbeitrag führen wir Sie durch ein Python-Beispiel, das zeigt, wie Sie Layoutelemente wie Spalten, Container, Platzhalter und mehr in Streamlit effektiv nutzen.

Lassen Sie uns die Layouttechniken aufschlüsseln, mit denen Sie Ihre Apps übersichtlicher und interaktiver gestalten können.

Die Bühne bereiten: Seitenkonfiguration

Bevor wir uns mit den Layoutelementen befassen, konfigurieren wir die Seite mit st.set_page_config(). Mit dieser Methode können Sie den Seitentitel, das Symbol, das Layout und das Verhalten der Seitenleiste direkt beim Laden der App anpassen.

st.set_page_config(
    page_title="Streamlit Layouts Tutorial",
    page_icon=":art:",
    layout="wide",
    initial_sidebar_state="collapsed",
)

Hier geben wir der Seite einen Titel, stellen das Layout auf „breit“ ein (wodurch die volle Browserbreite genutzt wird) und klappen die Seitenleiste zunächst aus, um ein übersichtlicheres Erscheinungsbild zu erzielen.

1. Strukturierung mit Spalten

Eines der leistungsstärksten Layout-Tools in Streamlit sind Spalten. Sie ermöglichen es Ihnen, Inhalte nebeneinander anzuzeigen, was Ihrer App ein organisierteres und optisch ansprechenderes Aussehen verleiht.

st.header("Columns")
st.write("Using `st.columns()` to create columns.")

# Create two columns
col1, col2 = st.columns(2)

col1.write("This is column 1")
if col1.button("Button in Column 1"):
    col1.write("Button 1 pressed")

col2.write("This is column 2")
if col2.button("Button in Column 2"):
    col2.write("Button 2 pressed")

In diesem Snippet erstellen wir zwei Spalten und platzieren in jeder Schaltflächen. Die Spalten sind gleichmäßig aufgeteilt und jegliche Interaktionen innerhalb einer Spalte haben keinen Einfluss auf die andere.

Warum Spalten?

Spalten eignen sich hervorragend, um verwandte Informationen nebeneinander anzuzeigen, z. B. Datenzusammenfassungen, Diagramme oder interaktive Steuerelemente.

2. Gruppierung mit Containern

Als nächstes kommt das Containerelement. Mit Containern in Streamlit können Sie mehrere Elemente gruppieren und so komplexe Layouts einfacher verwalten.

st.header("Container")
st.write("Using `st.container()` to group elements together.")

with st.container():
    st.write("This is inside a container")
    st.button("Button inside container")

    # Nested container
    with st.container():
        st.write("This is a nested container")
        st.button("Button inside nested container")

In diesem Beispiel fasst die Methode st.container() mehrere Elemente (Text und eine Schaltfläche) zusammen. Sie können Container sogar ineinander verschachteln, um hierarchische Layouts zu erstellen.

Warum Container?

Container helfen dabei, eine saubere und gruppierte Struktur aufrechtzuerhalten, insbesondere wenn es um mehrere Inhaltsabschnitte geht, die logisch zusammengehören.

3. Dynamisches Aktualisieren mit Platzhaltern

Eine leistungsstarke Funktion von Streamlit ist die Möglichkeit, Inhalte dynamisch zu aktualisieren. Dies geschieht mit st.empty(), das als Platzhalter dient, den Sie später aktualisieren können.

st.header("Empty")
st.write("Using `st.empty()` as a placeholder for updating content.")

placeholder = st.empty()

# Update the placeholder content dynamically
for i in range(5):
    placeholder.write(f"Updating... {i}")
    time.sleep(1)

placeholder.write("Done!")

In diesem Beispiel verwenden wir eine for-Schleife, um den Platzhalter jede Sekunde mit einem neuen Wert zu aktualisieren. Sobald die Schleife fertig ist, ersetzen wir den Platzhalterinhalt durch „Fertig!“

Warum Platzhalter verwenden?

Platzhalter sind ideal für Situationen, in denen Sie Teile Ihrer App dynamisch aktualisieren müssen, ohne die gesamte App erneut ausführen zu müssen, z. B. Live-Datenfeeds oder Fortschrittsaktualisierungen.

4. Ein- und Ausblenden mit Expandern

Erweiterbare Abschnitte eignen sich perfekt zum Ausblenden erweiterter Einstellungen oder zusätzlicher Informationen, die das Hauptlayout nicht überladen sollen.

st.set_page_config(
    page_title="Streamlit Layouts Tutorial",
    page_icon=":art:",
    layout="wide",
    initial_sidebar_state="collapsed",
)

Hier verpacken wir einige Inhalte und eine Schaltfläche in einen Expander, auf den Benutzer klicken können, um den Inhalt anzuzeigen oder auszublenden.

Warum Expander?

Expander helfen dabei, Ihre Benutzeroberfläche übersichtlich zu halten, indem sie weniger wichtige oder erweiterte Optionen verbergen und sie bei Bedarf dennoch leicht zugänglich machen.

5. Formulare erstellen

Streamlit-Formulare ermöglichen es Ihnen, Eingabe-Widgets zu gruppieren und darauf zu warten, dass der Benutzer sie alle auf einmal übermittelt, anstatt auf jede Eingabe einzeln zu reagieren.

st.header("Columns")
st.write("Using `st.columns()` to create columns.")

# Create two columns
col1, col2 = st.columns(2)

col1.write("This is column 1")
if col1.button("Button in Column 1"):
    col1.write("Button 1 pressed")

col2.write("This is column 2")
if col2.button("Button in Column 2"):
    col2.write("Button 2 pressed")

In diesem Beispiel verwenden wir ein Formular, um den Namen und das Alter eines Benutzers zu erfassen. Erst wenn dieser auf die Schaltfläche „Senden“ klickt, verarbeitet Streamlit die Eingabe.

Warum Formulare?

Formulare stellen sicher, dass Eingabeaktionen gruppiert und als Stapel übermittelt werden, was ideal für Fälle wie Benutzerregistrierung oder Datenfilterung ist.

6. Hinzufügen einer Seitenleiste

Seitenleisten sind nützlich für die Navigation, App-Einstellungen oder zusätzliche Optionen, die die Hauptoberfläche nicht überladen.

st.header("Container")
st.write("Using `st.container()` to group elements together.")

with st.container():
    st.write("This is inside a container")
    st.button("Button inside container")

    # Nested container
    with st.container():
        st.write("This is a nested container")
        st.button("Button inside nested container")

Dieser Code fügt der Seitenleiste eine Schaltfläche hinzu, die standardmäßig ausgeblendet wird, aber vom Benutzer erweitert werden kann.

Warum Seitenleisten verwenden?

Seitenleisten eignen sich perfekt für sekundäre Inhalte wie Navigationslinks, Filter oder App-Einstellungen, die immer zugänglich sind, aber keinen Platz im Hauptlayout beanspruchen müssen.

7. Navigieren mit Tabs

Registerkarten sind eine großartige Möglichkeit, Inhalte innerhalb eines einzelnen Abschnitts zu organisieren, sodass Benutzer zwischen verschiedenen Ansichten wechseln können, ohne die Seite zu verlassen.

st.header("Empty")
st.write("Using `st.empty()` as a placeholder for updating content.")

placeholder = st.empty()

# Update the placeholder content dynamically
for i in range(5):
    placeholder.write(f"Updating... {i}")
    time.sleep(1)

placeholder.write("Done!")

In diesem Beispiel verwenden wir drei Registerkarten, um verschiedene Inhalte im Zusammenhang mit Tieren anzuzeigen. Jede Registerkarte ist unabhängig und enthält ihren eigenen Inhalt.

Warum Tabs?

Registerkarten eignen sich ideal zum Organisieren verwandter Inhalte in Abschnitten, z. B. verschiedenen Datenansichten oder Informationskategorien, ohne dass separate Seiten erforderlich sind.

Abschluss

Wenn Sie die Layoutelemente von Streamlit beherrschen, können Sie saubere, interaktive und benutzerfreundliche Anwendungen erstellen. Durch den geschickten Einsatz von Spalten, Containern, Platzhaltern, Expandern, Formularen, Seitenleisten und Registerkarten können Sie Ihre Inhalte effektiv organisieren und das gesamte Benutzererlebnis verbessern. Mit diesen Tools können Sie intuitive Schnittstellen erstellen, die Benutzer nahtlos durch Ihre Anwendung führen.


? Holen Sie sich den Code: GitHub – jamesbmour/blog_tutorials
? Verwandte Streamlit-Tutorials:JustCodeIt
? Unterstützen Sie meine Arbeit: Buy Me a Coffee

Das obige ist der detaillierte Inhalt vonOptimierte Part-Mastering-Layouts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn