본문 바로가기
Python/Streamlit

스트림릿(streamlit)의 다양한 UI 함수들 정리 2 - 멀티셀렉트/슬라이더, 익스펜더 만들기/이미지,동영상,오디오파일 출력/유저한테 입력받기

by healingmau 2022. 5. 20.

 

스트림릿(streamlit)의 다양한 UI 함수들 정리 2

 

 

 

 

1. 멀티 셀렉트(Multiselect)

 


st.multiselect()

 

멀티 셀렉트 박스는 여러개 중에서

여러개를 선택하는 UI입니다.

선택한 문자열을 리턴합니다.

 

import streamlit as st

def main() :

    language = ['운동', '영화감상', '음악듣기', '산책하기', '먹기']
    st.multiselect('당신의 취미를 선택하세요. 복수 선택 가능', language)

if __name__ == "__main__" :
    main()

 

[결과]

 

 


 

2. 슬라이더(Silder) 만들기

 


st.slider()

 

슬라이더(Silder)는 숫자를

조정하는데 주로 사용됩니다.

(파라미터 : 라벨, 최소값, 최대값, 디폴트값, 간격)

 

정수와 소숫점도 사용할수 있습니다.

소숫점을 사용할때는 값이 모두

소숫점이어야 합니다.

 

import streamlit as st

def main() :

    age = st.slider('나이', 1, 120, 30, 5)
    st.text('제가 선택한 나이는 {} 입니다.'.format(age))

if __name__ == "__main__" :
    main()

 

[결과]

 

 


 

3. 익스펜더(Expander) 만들기

 


st.expander()

 

익스펜더는 누르면 확장되는

방식의 프레임 입니다.

클릭하면 숨겨진 영역을

볼수 있습니다.

 

import streamlit as st
import pandas as pd

def main() :
    df = pd.read_csv('data2/iris.csv')

    with st.expander('데이터프레임 보기') :
        st.dataframe(df)

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 


 

4. 이미지(Image) 파일 출력

 


from PIL import Image

 

먼저 이미지 처리를 위한

라이브러리를 호출합니다.

 


 st.image()

 

Image.open('파일경로')

저장되어 있는 이미지를

화면에 표시하거나

인터넷상에 있는 이미지를

화면에 표시할수 있습니다.

 

import streamlit as st
from PIL import Image

def main() :
    
    img = Image.open('data2/image_03.jpg')
    st.image(img)

if __name__ == "__main__" :
    main()

 

[결과]

 

 

import streamlit as st
from PIL import Image

def main() :
    
    # 인터넷상에 있는 이미지를 화면에 표시하기
    # URL이 있는 이미지를 말한다.
    
    url = 'https://t1.daumcdn.net/cfile/blog/99AB2B4B5D4057A52D'
    st.image(url)
    st.text('사진출처 : https://blog.daum.net/myungee/9')

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 


 

5. 동영상(Video) 파일 출력

 


st.video()

 

동영상을 화면에 표시합니다.

 

import streamlit as st

def main() :
    
    video_file = open('data2/secret_of_success.mp4', 'rb')
    st.video(video_file)

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 


 

6. 오디오(Audio) 파일 출력

 


st.audio()

 

오디오를 화면에 표시합니다.

 

import streamlit as st

def main() :
    
    audio_file = open('data2/song.mp3', 'rb')
    st.audio( audio_file.read() , format='audio/mp3')

if __name__ == "__main__" :
    main()

 

[결과]

 

 


 

7. 유저한테 입력받는 Input

 


st.text_input()

 

text_input() 함수는

유저한테 문자를 입력받을때

사용합니다.

 

파라미터로 max_chars에 값을 주면

입력 글자 갯수 제한을 줍니다.

ex. max_chars=10 (10글자까지)

 

a. 글자 입력받기

 

import streamlit as st

def main() :
    
    # 유저한테 입력을 받는 방법

    # 1. 이름 입력 받기
    name = st.text_input('이름을 입력하세요!')

    if name != '' :
        st.subheader(name + '님 안녕하세요??')

    # 2. 입력 글자 갯수 제한
    address = st.text_input('주소를 입력하세요', max_chars=10)
    st.subheader(address)
    
if __name__ == "__main__" :
    main()

 

[결과]

 

 

b. 여러행의 글자 입력받기

 


st.text_area()

 

유저에게 입력을 받을때

여러행을 입력받을수 있습니다.

 

import streamlit as st

def main() :
    
    # 여러 행을 입력가능하도록
    message = st.text_area('메세지를 입력하세요', height=3)
    st.subheader(message)

if __name__ == "__main__" :
    main()

 

파라미터 height으로 글상자 높이를

지정해 줄수 있습니다.

 

[결과]

 

c. 숫자 입력받기

 


st.number_input()

숫자 정수와 실수를

입력받을수 있습니다.

 

 

import streamlit as st

def main() :
    
    # 4. 숫자 입력, 정수
    st.number_input('숫자 입력', 1, 100)

    # 5. 숫자 입력, 실수
    st.number_input('실수 입력', 1.0, 100.0)

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 

d. 날짜 입력받기

 


st.date_input()

 

스트림릿의 date_input() 함수로

유저가 달력에서 날짜를

선택하게 할수 있습니다.

 

import streamlit as st

def main() :
    
   # 6. 날짜 입력
    my_date = st.date_input('약속날짜') # 디폴트로 오늘 날짜가 찍혀 있다.
    st.write(my_date)

    # 요일 찍기
    st.write( my_date.weekday() )
    st.write( my_date.strftime('%A') )

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 

 

e. 시간 입력받기

 


st.time_input()

 

time_input() 함수로

유저에게 시간을 입력받을수

있습니다.

 

import streamlit as st

def main() :
    
    my_time = st.time_input('시간 선택')
    st.write(my_time)

if __name__ == "__main__" :
    main()

 

[결과]

 

 

f. 색을 입력받기

 


st.color_picker()

 

색상표에서 유저가 색상을

선택할수 있도록 할수 있습니다.

 

import streamlit as st

def main() :
    
    # 8. 색을 입력
    color = st.color_picker('색을 선택하세요')
    st.write(color)

if __name__ == "__main__" :
    main()

 

[결과]

 

 

 

g. 비빌번호 입력받기

 

import streamlit as st

def main() :
    
    # 비밀번호 입력
    password = st.text_input('비밀번호 입력', type='password')
    st.write(password)

if __name__ == "__main__" :
    main()

 

[결과]

 

댓글