首页 后端开发 Python教程 Streamlit 部分母带布局

Streamlit 部分母带布局

Nov 05, 2024 pm 09:39 PM

Streamlit Part Mastering Layouts

掌握 Streamlit 中的布局:分步指南

Streamlit 是一种广泛使用的框架,用于构建交互式 Python 应用程序,特别是数据可视化、仪表板和机器学习演示,它不仅因其用户友好性而脱颖而出,还因其创建视觉吸引力和直观布局的能力。在这篇博文中,我们将引导您完成一个 Python 示例,演示如何在 Streamlit 中有效利用布局元素,例如列、容器、占位符等。

让我们来分解一下可以用来使您的应用程序更干净、更具交互性的布局技术。

准备工作:页面配置

在进入布局元素之前,我们使用 st.set_page_config() 配置页面。此方法允许您在应用程序加载时自定义页面标题、图标、布局和侧边栏行为。

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

登录后复制
登录后复制

在这里,我们为页面指定一个标题,将布局设置为“宽”(利用整个浏览器宽度),并最初折叠侧边栏以获得更清晰的外观。

1. 用列构建

Streamlit 中最强大的布局工具之一是列。它们允许您并排显示内容,使您的应用程序看起来更有条理、更具视觉吸引力。

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")

登录后复制
登录后复制

在此代码片段中,我们创建两列并在每列中放置按钮。各列被均匀分割,一列中的任何交互都不会影响另一列。

为什么是专栏?

列非常适合并排显示相关信息,例如数据摘要、图表或交互式控件。

2. 用容器分组

接下来是容器元素。 Streamlit 中的容器允许您将多个元素分组在一起,从而更轻松地管理复杂的布局。

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")

登录后复制
登录后复制

在此示例中,st.container() 方法将多个元素(文本和按钮)包装在一起。您甚至可以将容器嵌套在一起以创建分层布局。

为什么选择容器?

容器有助于维护干净且分组的结构,尤其是在处理逻辑上属于在一起的多个内容部分时。

3. 使用占位符动态更新

Streamlit 的一个强大功能是它能够动态更新内容。这是使用 st.empty() 完成的,它充当占位符,您可以稍后更新。

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!")

登录后复制
登录后复制

在此示例中,我们使用 for 循环每秒用新值更新占位符。循环完成后,我们将占位符内容替换为“完成!”

为什么使用占位符?

占位符非常适合您需要动态更新应用程序的某些部分而不重新运行整个应用程序的情况,例如实时数据源或进度更新。

4. 使用扩展器隐藏和显示

可扩展部分非常适合隐藏高级设置或您不想弄乱主布局的附加信息。

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

登录后复制
登录后复制

在这里,我们将一些内容和一个按钮包装在扩展器内,用户可以单击该按钮来显示或隐藏内容。

为什么选择扩展器?

扩展器通过隐藏不太重要或高级的选项来帮助保持界面整洁,同时仍然可以在需要时轻松访问它们。

5. 创建表格

Streamlit 表单允许您将输入小部件分组在一起并等待用户一次提交所有内容,而不是单独对每个输入做出反应。

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")

登录后复制
登录后复制

在此示例中,我们使用表单来收集用户的姓名和年龄,只有在用户单击提交按钮后,Streamlit 才会处理输入。

为什么要使用表格?

表单确保输入操作被分组并批量提交,这非常适合用户注册或数据过滤等情况。

6. 添加侧边栏

侧边栏对于导航、应用程序设置或不会扰乱主界面的额外选项很有用。

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")

登录后复制
登录后复制

此代码向侧边栏添加一个按钮,该按钮默认折叠,但可以由用户展开。

为什么使用侧边栏?

侧边栏非常适合辅助内容,例如导航链接、过滤器或应用程序设置,这些内容始终可以访问,但不需要占用主布局中的空间。

7. 使用选项卡导航

选项卡是在单个部分中组织内容的好方法,允许用户在不离开页面的情况下在不同视图之间切换。

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!")

登录后复制
登录后复制

在此示例中,我们使用三个选项卡来显示与动物相关的不同内容。每个选项卡都是独立的并包含自己的内容。

为什么是标签?

选项卡非常适合将相关内容组织成不同的部分,例如不同的数据视图或信息类别,而不需要单独的页面。

结论

掌握 Streamlit 的布局元素使您能够创建干净、交互式且用户友好的应用程序。通过熟练地使用列、容器、占位符、扩展器、表单、侧边栏和选项卡,您可以有效地组织内容并增强整体用户体验。这些工具允许您制作直观的界面,引导用户无缝地使用您的应用程序。


?获取代码:GitHub - jamesbmour/blog_tutorials
?相关Streamlit教程:JustCodeIt
?支持我的工作:请我喝杯咖啡

以上是Streamlit 部分母带布局的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1276
29
C# 教程
1256
24
Python与C:学习曲线和易用性 Python与C:学习曲线和易用性 Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python和时间:充分利用您的学习时间 Python和时间:充分利用您的学习时间 Apr 14, 2025 am 12:02 AM

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python vs.C:探索性能和效率 Python vs.C:探索性能和效率 Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

学习Python:2小时的每日学习是否足够? 学习Python:2小时的每日学习是否足够? Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

Python标准库的哪一部分是:列表或数组? Python标准库的哪一部分是:列表或数组? Apr 27, 2025 am 12:03 AM

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python:自动化,脚本和任务管理 Python:自动化,脚本和任务管理 Apr 16, 2025 am 12:14 AM

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

Web开发的Python:关键应用程序 Web开发的Python:关键应用程序 Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

See all articles