Web 3 : streamlit

haeIT·2024년 8월 8일

Web

목록 보기
3/14
post-thumbnail
  • 1교시 : 강사님 잔소리 time~!
  • 2교시 : streamlit 실습 이어서


실습 6. streamlit_5.py

  • streamlit 이용한 웹 앱 만들기 유튜브에 많음. 찾아보기~!

  • ps(파워쉘) 모드에서 cmd로 들어가줘야 함.

  • streamlit run streamlit 파일명.py로 실행!
import streamlit as st
import FinanceDataReader as fdr
import datetime
import time

st.title('종목 차트 검색')

#사이드 바 만들기
with st.sidebar:
   date = st.date_input(
       '조회 시작일을 선택해 주세요.', 
       datetime.datetime(2022, 1, 1)
   )
   
code = st.text_input(
    '종목코드',
    value='',
    placeholder='종목코드를 입력하세요'
)

if code and date:
    df = fdr.DataReader(code, date)
    data = df.sort_index(ascending=True).loc[:, 'Close']
    
    tab1, tab2 = st.tabs(['차트', '데이터'])
    
    with tab1:
        st.line_chart(data)
        
    with tab2:
        st.dataframe(df.sort_index(ascending=False))
        
    with st.expander('칼럼 설명'):
        st.markdown("""
                    - Open : 시가
                    - High : 고가
                    - Low : 저가
                    - Close : 종가
                    - Adj Close : 수정 종가
                    - Volume : 거래량
                    """)

  • 왼쪽 회색 부분이 사이드 바!


실습 7. streamlit_6.py

import streamlit as st
import datetime
import random

st.title(':sparkles: 로또 생성기 :sparkles:')

def generate_lotto():
    lotto = set() # 중복방지 하기 위해 set 사용 @@@@@@@@@@@@@@@@@@@@@@@@@@
    while len(lotto) <6:
        number = random.randint(1, 46)
        lotto.add(number)
        
    lotto = list(lotto)
    return lotto

button = st.button('로또 번호 생성')

if button:
    for i in range(1, 6):
        st.subheader(f'{i}. 행운의 번호 : :green[{generate_lotto()}]')
    st.write(f'생성된 시작 : {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}')  

  • streamlit은 여기서 끝


  • 종강 d-50

0개의 댓글