?获取代码:GitHub - jamesbmour/blog_tutorials
?相关Streamlit教程:JustCodeIt
Streamlit 彻底改变了我们使用 Python 创建 Web 应用程序的方式。它的简单性和强大功能使其成为数据科学家和开发人员的绝佳选择。在这篇文章中,我们将深入探讨 Streamlit 最强大的功能之一:输入小部件。我们将探索 16 种不同的输入类型,演示如何在 Streamlit 应用程序中有效地使用它们。
在我们深入了解小部件之前,让我们先设置一下 Streamlit 应用程序:
import streamlit as st st.set_page_config(layout="wide") st.title("Streamlit Part 4: Inputs in Streamlit") col1, col2 = st.columns(2)
我们导入了 Streamlit,将页面设置为宽布局,添加了标题,并创建了两列以更好地组织我们的小部件。
最简单的输入形式是按钮。创建方法如下:
with col1: st.subheader("1. Button") btn1 = st.button("Click Me", key="button", help="Click me to see the magic", type='secondary', disabled=False) if btn1: st.write("Button Clicked")
详细说明:
用例:
提示:使用按钮状态来控制应用程序的流程,例如显示/隐藏部分或触发计算。
要将用户重定向到外部链接,请使用链接按钮:
st.subheader("2. Link Button") if st.link_button("Click Me", "<https://www.streamlit.io/>"): st.write("Link Button Clicked")
详细说明:
用例:
提示:谨慎使用链接按钮,以避免不必要地引导用户离开您的应用。
允许用户直接从您的应用下载文件:
st.subheader("3. Download Button") if st.download_button("Download Me", "hello world", "hello.txt", mime='text/plain'): st.write("Download Button Clicked")
详细说明:
用例:
提示:您可以根据用户交互或数据处理结果动态生成文件内容。
复选框非常适合切换选项:
st.subheader("4. Checkbox") checkbox_val = st.checkbox("Check Me", value=False) if checkbox_val: st.write("Checkbox Checked")
详细说明:
用例:
提示:使用复选框来控制应用程序中其他元素的可见性,以获得更动态的用户体验。
当用户需要从列表中选择一个选项时:
st.subheader("5. Radio") radio_val = st.radio("Select Color", ["Red", "Green", "Blue"], index=0) if radio_val: st.write(f"You selected {radio_val}")
详细说明:
用例:
提示:当您有少量互斥选项(通常是 2-5 个)时,请使用单选按钮。
对于下拉选择:
st.subheader("6. Selectbox") select_val = st.selectbox("Select Color", ["Red", "Green", "Blue", "Black"], index=1) if select_val: st.write(f"You selected {select_val}")
详细说明:
用例:
Tip: You can populate the options dynamically based on data or user inputs.
Allow users to select multiple options:
st.subheader("7. Multiselect") multiselect_val = st.multiselect("Select Colors", ["Red", "Green", "Blue", "Black"], default=["Red"]) if multiselect_val: st.write(f"You selected {multiselect_val}")
Detailed Explanation:
Use Cases:
Tip: Use st.multiselect() when you want users to be able to select any number of options, including none or all.
For selecting from a range of discrete values:
st.subheader("8. Select Slider") select_slider_val = st.select_slider("Select Value", options=range(1, 101), value=50) if select_slider_val: st.write(f"You selected {select_slider_val}")
Detailed Explanation:
Use Cases:
Tip: You can use custom labels for the slider by passing a list of tuples (label, value) as options.
For single-line text input:
with col2: st.subheader("9. Text Input") text_input_val = st.text_input("Enter some text", value="", max_chars=50) if text_input_val: st.write(f"You entered {text_input_val}")
Detailed Explanation:
Use Cases:
Tip: Use the type parameter to create password fields or other specialized inputs.
For multi-line text input:
st.subheader("10. Text Area") text_area_val = st.text_area("Enter some text", value="", height=150, max_chars=200) if text_area_val: st.write(f"You entered {text_area_val}")
Detailed Explanation:
Use Cases:
Tip: You can use st.text_area() with natural language processing models for text analysis or generation tasks.
For numerical inputs:
st.subheader("11. Number Input") number_input_val = st.number_input("Enter a number", value=0, min_value=0, max_value=100, step=1) if number_input_val: st.write(f"You entered {number_input_val}")
Detailed Explanation:
Use Cases:
Tip: You can use format parameter to control the display of decimal places.
For selecting dates:
st.subheader("12. Date Input") date_input_val = st.date_input("Enter a date") if date_input_val: st.write(f"You selected {date_input_val}")
Detailed Explanation:
Use Cases:
Tip: Use datetime.date.today() as the default value to start with the current date.
For selecting times:
st.subheader("13. Time Input") time_input_val = st.time_input("Enter a time") if time_input_val: st.write(f"You selected {time_input_val}")
Detailed Explanation:
Use Cases:
Tip: Combine with st.date_input() to create full datetime inputs.
For uploading files:
st.subheader("14. File Uploader") file_uploader_val = st.file_uploader("Upload a file", type=["png", "jpg", "txt"]) if file_uploader_val: st.write(f"You uploaded {file_uploader_val.name}")
Detailed Explanation:
Use Cases:
Tip: Use st.file_uploader() in combination with libraries like Pillow or pandas to process uploaded files directly in your app.
For selecting colors:
st.subheader("15. Color Picker") color_picker_val = st.color_picker("Pick a color", value="#00f900") if color_picker_val: st.write(f"You picked {color_picker_val}")
Detailed Explanation:
Use Cases:
Tip: You can use the selected color to dynamically update the appearance of other elements in your app.
For capturing images using the device's camera:
st.subheader("16. Camera Input") camera_input_val = st.camera_input("Take a picture", help="Capture an image using your camera") if camera_input_val: st.write("Picture captured successfully")
Detailed Explanation:
Use Cases:
Tip: Combine with image processing libraries like OpenCV to perform real-time analysis on captured images.
Streamlit's input widgets provide a powerful and flexible way to create interactive web applications. From simple buttons to complex file uploaders and camera inputs, these widgets cover a wide range of use cases. By mastering these input types, you can create rich, interactive Streamlit apps that engage users and provide meaningful interactions with your data and models.
Happy Streamlit coding!
? Get the Code: GitHub - jamesbmour/blog_tutorials
? Related Streamlit Tutorials:JustCodeIt
? Support my work: Buy Me a Coffee
以上是Streamlit 部分掌握输入小部件的详细内容。更多信息请关注PHP中文网其他相关文章!