Execution flow

默认情况下,Streamlit 应用程序会完全执行脚本,但我们允许一些功能来处理应用程序中的控制流。

screenshot

模态对话框

插入一个可以独立于脚本其余部分重新运行的模态对话框。

@st.dialog("Sign up") def email_form(): name = st.text_input("Name") email = st.text_input("Email")

片段

定义一个片段以独立于脚本的其余部分重新运行。

@st.fragment(run_every="10s") def fragment(): df = get_data() st.line_chart(df)

重新运行脚本

立即重新运行脚本。

st.rerun()

停止执行

立即停止执行。

st.stop()

默认情况下,每当用户与您的应用程序交互时,Streamlit 都会重新运行您的脚本。 然而,有时更好的用户体验是等到一组相关的小部件被填写完毕后再重新运行脚本。这就是 st.form 的用途!

表单

创建一个表单,将元素与“提交”按钮一起批量处理。

with st.form(key='my_form'): name = st.text_input("Name") email = st.text_input("Email") st.form_submit_button("Sign up")

表单提交按钮

显示一个表单提交按钮。

with st.form(key='my_form'): name = st.text_input("Name") email = st.text_input("Email") st.form_submit_button("Sign up")

第三方组件

这些是由我们可爱的社区创建的精选组件。更多示例和灵感,请查看我们的 组件库 Streamlit 扩展

screenshot

自动刷新

强制刷新而不占用脚本。由@kmcgrady创建。

from streamlit_autorefresh import st_autorefresh st_autorefresh(interval=2000, limit=100, key="fizzbuzzcounter")
screenshot

Pydantic

从Pydantic模型和数据类自动生成Streamlit用户界面。由@lukasmasuch创建。

import streamlit_pydantic as sp sp.pydantic_form(key="my_form", model=ExampleModel)
screenshot

Streamlit 页面

Streamlit 多页面应用的实验版本。由 @blackary 创建。

from st_pages import Page, show_pages, add_page_title show_pages([ Page("streamlit_app.py", "Home", "🏠"), Page("other_pages/page2.py", "Page 2", ":books:"), ])
forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。