오늘 배워 오늘 쓰는 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) 실행
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 : 주식보고서 프로젝트를 연동해보세요.
버튼을 누르면, 원하는 프로젝트가 동작함을 알 수 있다.
ㅁ 참고
- 20분만에 주식앱 만들기 (Link)
- streamlit 애플리케이션만들기 (Link)
- yfinance, prophet을 사용한 주식 예측하기 (youtube_link, source_link)
반응형