提示
本页面仅包含有关st.forms
API的信息。要深入了解在Streamlit应用程序中创建和使用表单,请阅读我们的指南使用表单。
创建一个表单,将元素与“提交”按钮一起批量处理。
表单是一个容器,它视觉上将其他元素和小部件组合在一起,并包含一个提交按钮。当表单的提交按钮被按下时,表单内的所有小部件值将批量发送到Streamlit。
要向表单对象添加元素,您可以使用with表示法(推荐)或直接在表单上调用方法。请参见下面的示例。
表单有一些约束条件:
- 每个表单必须包含一个 st.form_submit_button。
- st.button 和 st.download_button 不能添加到表单中。
- 表单可以出现在应用程序的任何位置(侧边栏、列等),但不能嵌入到其他表单中。
- 在表单中,唯一可以具有回调函数的小部件是 st.form_submit_button。
函数签名[source] | |
---|---|
st.form(key, clear_on_submit=False, *, enter_to_submit=True, border=True) | |
参数 | |
key (str) | 一个用于标识表单的字符串。每个表单必须有自己的键。(此键不会在界面中显示给用户。) |
clear_on_submit (bool) | 如果为True,用户按下提交按钮后,表单内的所有小部件将重置为其默认值。默认为False。 (请注意,自定义组件不受此标志的影响,并且在表单提交时不会重置为其默认值。) |
enter_to_submit (bool) | 当用户在与表单中的小部件交互时按下Enter键时,是否提交表单。 如果这是True(默认值),在与表单小部件交互时按下Enter键等同于点击表单中的第一个st.form_submit_button。 如果这是False,用户必须点击st.form_submit_button来提交表单。 如果表单中的第一个st.form_submit_button被禁用,表单将覆盖提交行为,使用enter_to_submit=False。 |
border (bool) | 是否在表单周围显示边框。默认为True。 注意 不显示边框可能会让用户感到困惑,因为与表单中的小部件交互时不会有任何反应。只有在有其他边框(例如由于扩展器)或表单很小(例如只有一个文本输入和一个提交按钮)时,才应移除边框。 |
示例
使用with符号插入元素:
import streamlit as st with st.form("my_form"): st.write("Inside the form") slider_val = st.slider("Form slider") checkbox_val = st.checkbox("Form checkbox") # Every form must have a submit button. submitted = st.form_submit_button("Submit") if submitted: st.write("slider", slider_val, "checkbox", checkbox_val) st.write("Outside the form")无序插入元素:
import streamlit as st form = st.form("my_form") form.slider("Inside the form") st.slider("Outside the form") # Now add a submit button to the form: form.form_submit_button("Submit")
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。