[간단 폭속] HTML 파일이 필요없는 Streamlit로 몇 분 만에 웹 앱 만들기
Streamlit은 무엇입니까?
Streamlit
는 파이썬 오픈 소스 프레임 워크입니다.이번 목표
우선은 간단하게 web어플인것 같은 것을 만들어 가고 싶습니다. 웹 앱을 만드는 데 귀찮은 것이 백엔드의 여러 가지 처리와 HTML 파일의 작성이지만, Streamlit은 그 작업을 할 필요가 전혀 없는 것 같습니다. 무려 파이썬 파일 하나로 웹 페이지를 만들 수 있습니다.
추가 (2021/10)
StreamliCloud를 통해 배포까지 쉽게 할 수 있습니다. 소개 기사는 여기
설치
pip를 사용하여 설치할 수 있습니다.
$ pip install streamlit
데모 페이지 시작
$ streamlit hello
위의 명령으로 http://localhost:8501 에서 바로 데모 화면이 시작됩니다.
간단하네요.
웹페이지 만들기
적절한 디렉토리에 Python 파일을 만듭니다. 파일명은 뭐든지 좋지만, 이번은 공식에 준해
first_app.py
로 합니다.$ touch first_app.py
$ cd first_app.py
다음에 이 파일에 기입해 갑니다. 가장 먼저이므로 Helloworld를 표시합시다.
first_app.py
import streamlit as st
st.title('MyApp')
st.write("HelloWorld")
first_app.py
있는 디렉토리에서 다음 명령을 실행$ streamlit run first_app.py
아마도 웹 페이지에 Helloworld라고 표시됩니다.
HTML이나 CSS 파일을 걸지 않아도, 이런 적은 코드량으로 Web 페이지를 만들 수 있다니 조금 감동이군요.
그 밖에도 헤더나 데이터 프레임도 간단하게 표시할 수 버립니다.
first_app.py
import streamlit as st
import numpy as np
import pandas as pd
st.title("HelloWorld")
st.subheader("This is subheader")
st.write("This is testdata")
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
}))
이와 같이 Streamlit에는
st.write()
나 st.title()
와 같은 다양한 메소드가 준비되어 있습니다.다른 메소드에 대해서는 공식 문서를 참조해 주세요.
magic commands
이것만으로도 HTML 파일 필요없이 프론트 처리를 할 수 있으므로 충분히 편리합니다만,
무려 streamlit에는 실은 보다 획기적인 커멘드가 준비되어 있습니다.
first_app.py
import streamlit as st
import numpy as np
import pandas as pd
"""
# My first app
### This is subheader
This is testdata
"""
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
}))
이렇게 쓰고 앱을 확인해 보면,
오...
Streamlit은 코드 안에 끈적끈적한 코멘트를 잘 읽고,
앱에 써주세요.
공식에서는 magic command라고 부릅니다. 바로 마법입니다.
덧붙여서 Python3 이후가 아니면 움직이지 않는 것 같습니다.
widgets를 사용하여 대화형 앱 만들기
확인란과 선택 상자도 쉽게 추가할 수 있습니다.
시도에 선택 상자에서 도쿄 또는 오사카를 선택하여지도에 점을 흩어서 칠 수 있습니다.
그리고, 체크 박스에 체크를 하면, 좌표 데이터의 일람을 볼 수 있도록(듯이) 했습니다.
locate = {"東京":[35.68, 139.76] , "大阪":[34.70 ,135.49]}
# セレクトボックス
l = st.selectbox(
'Which places do you like best?',
("東京","大阪"))
'You selected:', l
# 地図をプロット
map_data = pd.DataFrame(
np.random.randn(1000, 2) / [50, 50] + locate[l],
columns=['lat', 'lon'])
st.map(map_data)
# チェックボックス
if st.checkbox('Show dataframe'):
st.write(map_data)
또한 대부분의 명령은
st.sideber
를 추가하여 각 기능을 왼쪽 사이드 바에 전달할 수 있습니다.st.selectbox
→ st.sidebar.selectbox
st.checkbox
→ st.sidebar.chechbox
그렇다면이렇게 간단한 웹 앱인 것 같습니다.
마침내
정말 Python 파일 하나로, 게다가 몇 줄의 코드로 web 앱을 만들 수 버렸습니다.
같은 파이썬에서
Django
와 Dash
도 충분히 빠르다고 느꼈지만, Streamlit
는 폭속이었지요.그 밖에도 그래프나 화상, 동영상 등도 한 줄의 간단한 코드로 임베드할 수 있었습니다.
그다지 디자인에 집착이 없고, 바삭바삭과 자신이 개발한 무엇인가를 공개하고 싶을 때는, 사용해 보는 가치는 많이 있다고 생각합니다.
계속은 여기 에서.
Reference
이 문제에 관하여([간단 폭속] HTML 파일이 필요없는 Streamlit로 몇 분 만에 웹 앱 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Nate0928/items/566c2073358b4df3ceec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)