오늘 배워 오늘 쓰는 OpenAPI

프로젝트 포트폴리오 사이트 만들기 ( w/ Streamlit)

ai-creator 2021. 12. 3. 21:02
반응형

이제까지 만든 다양한 프로젝트를 streamlit을 사용하여 포트폴리오 웹페이지를 만들어보자.

 

1. Streamlit이란?

- 공식 사이트 (Link)

- streamlit cheatsheet (Link)

 

2. 라이브러리 설치

pip install streamlit==1.2.0

3. Quick Start

3-1) 구현

1) markdown.py

- markdown 처럼 사용

import streamlit as st

## Title
st.title("Streamlit Tutorial")

## Header/Subheader
st.header("This is header")
st.subheader("This is subheader")

## Text
st.text("Hello Streamlit! 이 글은 튜토리얼 입니다.")

## Markdown syntax
st.markdown("# This is a Markdown title")
st.markdown("## This is a Markdown header")
st.markdown("### This is a Markdown subheader")
st.markdown("- item 1\n"
            "   - item 1.1\n"
            "   - item 1.2\n"
            "- item 2\n"
            "- item 3")
st.markdown("1. item 1\n"
            "   1. item 1.1\n"
            "   2. item 1.2\n"
            "2. item 2\n"
            "3. item 3")

 

2) df_show.py

- dataframe 테이블

import streamlit as st
## Load data
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_df['target'] = iris['target']
iris_df['target'] = iris_df['target'].apply(lambda x: 'setosa' if x == 0 else ('versicolor' if x == 1 else 'virginica'))

## Return table/dataframe
# table
st.table(iris_df.head())

# dataframe
st.dataframe(iris_df)
st.write(iris_df)

 

3) player.py

import streamlit as st
##Show image
from PIL import Image
img = Image.open("res/email_sending/test.jpg")
st.image(img, width=400, caption="Image example: 펭수")
## Show videos
vid_file = open("res/email_sending/test.mp4", "rb").read()
st.video(vid_file, start_time=2)
## Play audio file.
audio_file = open("res/email_sending/test.mp3", "rb").read()
st.audio(audio_file, format='audio/mp3', start_time=10)

3-2) 서버 실행

$ streamlit run {파일명}.py

실행중지는 ? ctrl + C

 

3-3) 실행

http://127.0.0.1:8501

 

 

4. 생활밀착형 프로젝트 포트폴리오 만들기

- project_webpage.py

# 정상 동작 확인용
import jarvis_food_recommender
import streamlit as st

from PIL import Image
image = Image.open('res/streamlit_webpage/book_logo.png')
st.image(image, caption='파이썬 생활밀착형 프로젝트', width=240)

no_9 = st.button('09장. 날씨 정보를 이용한 맛집 추천 프로젝트')
no_10 = st.button('10장. 주식 분석 보고서 자동화 프로젝트')

if no_9 == True:
    st.write("9장. 날씨맞춤 맛집을 추천합니다!")
    jarvis_food_recommender.do()
elif no_10 == True:
    st.write("10장. 주식보고서를 메일로 전송합니다!")
    # todo : 주식보고서 프로젝트를 연동해보세요.

프로젝트 포트폴리오 webpage 완성

버튼을 누르면, 원하는 프로젝트가 동작함을 알 수 있다.

 

 

ㅁ 참고

- 20분만에 주식앱 만들기 (Link)

- streamlit 애플리케이션만들기 (Link)

- yfinance, prophet을 사용한 주식 예측하기 (youtube_link, source_link)

반응형