? 코드 받기: GitHub - jamesbmour/blog_tutorials
? 관련 Streamlit 튜토리얼:JustCodeIt
Streamlit은 Python을 사용하여 웹 애플리케이션을 만드는 방식에 혁명을 일으켰습니다. 단순성과 성능 덕분에 데이터 과학자와 개발자 모두에게 탁월한 선택이 됩니다. 이번 포스팅에서는 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
위 내용은 효율적인 부품 마스터링 입력 위젯의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!