Streamlit中使用多个按钮实现多参数输入

作者:暴富20212024.03.19 22:24浏览量:46

简介:本文将介绍如何在Streamlit应用中创建多个按钮,并通过这些按钮收集用户输入,实现多参数交互。

在Streamlit应用中,我们经常需要与用户进行交互,收集他们的输入并根据这些输入执行某些操作。有时,我们可能需要用户输入多个参数。为了实现这一点,我们可以使用Streamlit的按钮组件来收集用户的输入。

下面是一个简单的示例,展示了如何在Streamlit应用中创建多个按钮,并通过这些按钮收集用户输入。

首先,确保你已经安装了Streamlit。如果没有,请通过运行以下命令来安装:

  1. pip install streamlit

然后,创建一个新的Python文件(例如multi_button_input.py),并添加以下代码:

  1. import streamlit as st
  2. # 初始化参数
  3. param1 = ''
  4. param2 = ''
  5. param3 = ''
  6. # 创建按钮
  7. def on_button_click1():
  8. global param1
  9. param1 = st.session_state.get('param1', '')
  10. def on_button_click2():
  11. global param2
  12. param2 = st.session_state.get('param2', '')
  13. def on_button_click3():
  14. global param3
  15. param3 = st.session_state.get('param3', '')
  16. # 创建按钮并绑定点击事件
  17. with st.form('form1'):
  18. st.write('输入参数1:')
  19. st.text_input('param1', value=param1, key='param1')
  20. st.button('确定', on_click=on_button_click1)
  21. with st.form('form2'):
  22. st.write('输入参数2:')
  23. st.text_input('param2', value=param2, key='param2')
  24. st.button('确定', on_click=on_button_click2)
  25. with st.form('form3'):
  26. st.write('输入参数3:')
  27. st.text_input('param3', value=param3, key='param3')
  28. st.button('确定', on_click=on_button_click3)
  29. # 显示参数
  30. st.write('你输入的参数是:')
  31. st.write('参数1:', param1)
  32. st.write('参数2:', param2)
  33. st.write('参数3:', param3)

在这个示例中,我们创建了三个表单,每个表单都有一个文本输入框和一个按钮。当用户点击按钮时,会触发相应的回调函数,将文本输入框中的值保存到全局变量中。

注意,我们使用st.session_state来保存用户输入的值。st.session_state是一个特殊的字典,用于在Streamlit会话中保存和恢复数据。

要运行此应用,请在命令行中导航到包含multi_button_input.py文件的目录,并运行以下命令:

  1. streamlit run multi_button_input.py

然后,在浏览器中打开显示的URL,你将看到Streamlit应用界面。在这里,你可以分别输入三个参数的值,并通过点击相应的按钮来提交输入。应用的底部将显示你输入的所有参数值。

这只是一个简单的示例,你可以根据自己的需求进行扩展和修改。希望这能帮助你理解如何在Streamlit中使用多个按钮来收集多参数输入!