Heim > Artikel > Backend-Entwicklung > Optimierte Part-Mastering-Layouts
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.
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.
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.
Spalten eignen sich hervorragend, um verwandte Informationen nebeneinander anzuzeigen, z. B. Datenzusammenfassungen, Diagramme oder interaktive Steuerelemente.
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.
Container helfen dabei, eine saubere und gruppierte Struktur aufrechtzuerhalten, insbesondere wenn es um mehrere Inhaltsabschnitte geht, die logisch zusammengehören.
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!“
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.
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.
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.
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.
Formulare stellen sicher, dass Eingabeaktionen gruppiert und als Stapel übermittelt werden, was ideal für Fälle wie Benutzerregistrierung oder Datenfilterung ist.
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.
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.
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.
Registerkarten eignen sich ideal zum Organisieren verwandter Inhalte in Abschnitten, z. B. verschiedenen Datenansichten oder Informationskategorien, ohne dass separate Seiten erforderlich sind.
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!