2. Streamlit 사용법 익히기

fragrance_0·2023년 12월 7일
0

❐ Streamlit이란?

  • 데이터 스크립트를 웹앱 형태로 만들어주는 Python 프레임워크
  • 짧은 코드로도 아주 근사한 웹앱을 빠르게 만들 수 있음

프로그램을 웹앱 형태로 제작 + 모든 사람이 사용할 수 있도록 인터넷에 배포하는 방법까지 실습 예정


📎 사이트

  • 홈페이지에서도 사용설명이 잘 되어 있음 --> Streamlit 주소

  • Documenation에 들어가서 참고해 실습 예정


📎 터미널에서 가상환경 생성법

python -m venv ch03_env

📎 터미널에서 가상환경을 활성화

ch03_env\Scripts\activate.bat

📎 터미널에서 Streamlit 설치

pip install streamlit
# 잘 설치되었다면 웹 창이 뜬다
streamlit hello

❐ Streamlit 텍스트 입력 방법

📎 텍스트 엘리먼트 활용

  • 다양한 텍스트를 입력하는 모듈들의 사용방법 확인 가능

    streamlit 사이트 -> document -> API 레퍼런스 -> 텍스트 엘리먼트


📎 Streamlit run 하기

streamlit run '파일이름'

📎 Streamlit 웹 종료

  • 터미널 창에서 control + C

📎 터미널 이전 명령어 실행

  • 키보드 방향키 위를 누르기


❐ Streamlit 데이터 시각화 방법

1️⃣ DataFrame 형성

  • Interactive한 UI제공
  • 활용성 ⬆

2️⃣ 테이블

  • static한 시각화

3️⃣ HGRED 오픈소스 설치

  • 테이블을 Interactive하게 만들 수 있음
  • 체크박스를 넣어서 시각화, 그룹바이 가능
  • 엑셀에서 테이블을 사용하는 것 같은느낌

4️⃣ 메트릭

  • value값, 위아래의 값 추가 가능
  • 온도나 주식과 같이 + , - 가 굉장히 중요한 데이터를 시각화할때 사용
  • + 일때 -> 초록색
  • - 일때 -> 빨간색

5️⃣ JSON 시각화

  • OpenAI를 가지고 정보를 성출하거나 정보를 받을 때 json형태로 진행
  • StreamReset.json 메소드 안에 넣으면 json데이터가 정제되서 시각화됨


❐ Streamlit 그래프 시각화 방법

  • Steamlit은 라인그래프, bar차트와 같은 기본적인 시각화 기능 제공
  • Python 시각화 프레임 워크와 연동을 쉽게 할 수 있도록 구현해둠
    ⤬ 파이플롯 -> matplotlib
    ⤬ plotlib

→ 다양한 시각화 라이브러리 지원


1️⃣ 라이브러리 설치

  • pip install로 matplotlib과 plotly 설치
  • 현재 창의 가상환경 안에 설치 진행
    → 라인 그래프
    → 바 차트

2️⃣ input

  • 판다스의 데이터프레임 형태로 많이 넣음

❐ Streamlit 인풋 위젯 사용방법

  • API 레퍼런스에 오면 인풋 위젯스가 있음
    -> 일반적인 버튼 생성, 다운로드 버튼, 라디오 버튼, 셀렉트 박스, 슬라이더, 텍스트를 인풋 아웃풋으로 받는 것도 있음

1️⃣ 인풋위젯 사용 방법

  • if문을 통해 실행
  • 텍스트 입력 받기
    → 텍스트 인풋이라는 엘리먼트 사용
    → 텍스트 인풋 엘레멘트 안에 라벨을 먼저 지정을 해주면 라벨이 형성됨
    → placeholder는 텍스트 창 안에텍스트를 입력하기 전에 나오는 안내 메세지
  • F5 로 실행
  • placeholder에서의 질문에 대한 답변 작성 -> 저장됨
  • 패스워드 지정시 번호 입력해도 노출이 안되게 땡땡땡으로 나옴

2️⃣ 다운로드 버튼 생성

  • 다운로드 파일을 만들기 위한 판다스 df형성
  • 다운로드 버튼 생성을 위해 다운로드_버튼 이라는 엘레멘트 작성
  • csv로 다운로드 라는 버튼을 만든 후 샘플.csv다운로드 확인 가능
    

3️⃣ 체크박스 로직

  • 체크박스 클릭 -> if문 동작 -> 라이트 글씨 작동

3️⃣ 다중선택박스 로직

  • 여러가지 아이템 선택 시 사용
  • [1] 라벨 입력 -> [2] 선택 리스트 입력


❐ Streamlit 레이아웃 설정방법

1️⃣ 레이아웃

  • setPageConfig 활용하면 브라우저 상단에 타이틀을 생성할 수 있음
  • 레이아웃 -> wide 끄거나 킬 수 있음
  • Columns 개수에 따라서 레이아웃을 나눌 수 있음
  • 공간을 1:2:1의 비율로 나눠줄 수 있음: 가운데에만 동영상을 넣어서

2️⃣ 사이드바

  • AST 사이드바 작성

3️⃣ 탭 생성

  • 탭을 클릭할때마다 탭 안에 작성한 엘리먼트가 나타남
  • 탭 안에는 자신이 그 탭에 넣고 싶은 라벨을 리스트 형태로 넣음

스트림릿 내에서 직접 만든 오픈소스로 배포한 유용한 것들이 많음
어느 누군가가 스트림릿 기반으로 만들어서 배포한 것 활용 가능

[인프런]초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지

profile
@fragrance_0의 개발로그

0개의 댓글