파이썬만으로 웹을 할 수 있는 "Streamlit"을 시도해 본 적이 없어요.
12295 단어 Python
개시하다
이 글은 JSL(일본 시스템 기술 연구) 애드벤트 칼렌다어 205-Qita의 20일째 기사다.
매년 한 사람이 주년을 기념하는 관례가 있다.
이 나이가 되어도 막막한 나날을 보내고 있다.
평소에 개발 작업을 안 한 지 오래돼서 뭘 쓸까 고민이 많았어요.
며칠 전 참가한 "모두의 학습회"에서 닉키 씨가 소개한 Streamlit
재미있을 것 같아서 제가 사용했던 얘기를 할게요.
이른바 Streamlit
Streamlit는 파이톤 코드로 전방 (웹) 을 쓸 수 있는 프로그램 라이브러리입니다. 서비스인 것 같습니다.
이번 결승점
Streamlit는 파이톤 코드로 전방 (웹) 을 쓸 수 있는 프로그램 라이브러리입니다. 서비스인 것 같습니다.
이번 결승점
나는 그것으로 최근의 이벤트 데이터를 표시하고 싶다.
다양한 버전
설치하다. $ pip install streamlit
튜토리얼을 가지고 놀아봐요.
Hello App
$ streamlit hello
프로젝트를 작성합니다.
브라우저가 시작되면 다음 아날로그 사이트를 구축할 수 있습니다.
streamlit 프로젝트 제작
강좌에 따르면 다음과 같다streamlit
와 각종 프로그램 라이브러리의 importstreamlit run [ファイル名]
브라우저를 엽니다.import streamlit as st
import numpy as np
import pandas as pd
상호 반영 확인
제목과 판다스의 DataFrame을 이런 느낌으로 전달하면 브라우저는 서로 업데이트됩니다!st.title('My first app')
st.write("Here's our first attempt at using data to create a table:")
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
}))
Magic command
write
는 함수 이외에도 Magic commands
의 기능을 갖추고 있으며 변수를 쓰는 것write
만 함수와 같은 행위를 한다.df = pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [110, 200, 300, 400]
})
df
x=10
x
이런 느낌으로 고릴라 파이톤만 생성!
Connepass API에서 데이터 가져오기
튜토리얼을 대충 만지작거려도 많이 할 수 있기 때문에'콘나파스 API'에서 자사가 운영하는'GEEKLAB.NAGANO의 데이터를 확보해 활동 정보를 보여주려 했다.
geeklab_eventlist.pyimport streamlit as st
import pandas as pd
import requests, io
from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedelta
from PIL import Image
st.title('ギークラボイベント開催一覧')
image_url = 'https://connpass-tokyo.s3.amazonaws.com/thumbs/72/9d/729d521ab794e98b4427e9040e8f2fe9.png'
image = Image.open(io.BytesIO(requests.get(image_url).content))
st.image(image, use_column_width=True)
today = datetime.today()
startdate = datetime.strftime(today, '%Y%m')
enddate = "201402"
target_date_set = ['全件']
target_date_set.append(startdate)
while startdate > enddate:
dt = datetime.strptime(startdate, '%Y%m') - relativedelta(months=1)
startdate = dt.strftime("%Y%m")
target_date_set.append(startdate)
yyyymm = st.selectbox(
'イベント開催年月',
target_date_set
)
count = st.slider('取得件数', 0, 100, 10)
keyword = st.text_input('キーワード', '')
r = requests.get(f'https://connpass.com/api/v1/event/?series_id=2591&count={count}&ym={yyyymm}&keyword={keyword}')
titles = []
event_date_set = []
participants = []
owners_name = []
for e in r.json()["events"]:
titles.append(e["title"])
dt = datetime.fromisoformat(e["started_at"])
event_date_set.append(datetime.strftime(dt, '%Y/%m/%d'))
participants.append(e["accepted"])
owners_name.append(e["owner_display_name"])
df = pd.DataFrame({
'タイトル': titles,
'開催日': event_date_set,
'参加者数': participants,
'管理者': owners_name
})
df.style.set_properties(**{'text-align': 'center'})
df
이렇게 간단한 파이톤 코드, 여기까지 할 수 있어서 정말 좋아요!!
제한 사항
시도에서 주의한 제한 사항을 총결해 보세요.
$ pip install streamlit
Hello App
$ streamlit hello
프로젝트를 작성합니다.브라우저가 시작되면 다음 아날로그 사이트를 구축할 수 있습니다.
streamlit 프로젝트 제작
강좌에 따르면 다음과 같다
streamlit
와 각종 프로그램 라이브러리의 importstreamlit run [ファイル名]
브라우저를 엽니다.import streamlit as st
import numpy as np
import pandas as pd
상호 반영 확인
제목과 판다스의 DataFrame을 이런 느낌으로 전달하면 브라우저는 서로 업데이트됩니다!
st.title('My first app')
st.write("Here's our first attempt at using data to create a table:")
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
}))
Magic command
write
는 함수 이외에도 Magic commands
의 기능을 갖추고 있으며 변수를 쓰는 것write
만 함수와 같은 행위를 한다.df = pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [110, 200, 300, 400]
})
df
x=10
x
이런 느낌으로 고릴라 파이톤만 생성!Connepass API에서 데이터 가져오기
튜토리얼을 대충 만지작거려도 많이 할 수 있기 때문에'콘나파스 API'에서 자사가 운영하는'GEEKLAB.NAGANO의 데이터를 확보해 활동 정보를 보여주려 했다.
geeklab_eventlist.pyimport streamlit as st
import pandas as pd
import requests, io
from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedelta
from PIL import Image
st.title('ギークラボイベント開催一覧')
image_url = 'https://connpass-tokyo.s3.amazonaws.com/thumbs/72/9d/729d521ab794e98b4427e9040e8f2fe9.png'
image = Image.open(io.BytesIO(requests.get(image_url).content))
st.image(image, use_column_width=True)
today = datetime.today()
startdate = datetime.strftime(today, '%Y%m')
enddate = "201402"
target_date_set = ['全件']
target_date_set.append(startdate)
while startdate > enddate:
dt = datetime.strptime(startdate, '%Y%m') - relativedelta(months=1)
startdate = dt.strftime("%Y%m")
target_date_set.append(startdate)
yyyymm = st.selectbox(
'イベント開催年月',
target_date_set
)
count = st.slider('取得件数', 0, 100, 10)
keyword = st.text_input('キーワード', '')
r = requests.get(f'https://connpass.com/api/v1/event/?series_id=2591&count={count}&ym={yyyymm}&keyword={keyword}')
titles = []
event_date_set = []
participants = []
owners_name = []
for e in r.json()["events"]:
titles.append(e["title"])
dt = datetime.fromisoformat(e["started_at"])
event_date_set.append(datetime.strftime(dt, '%Y/%m/%d'))
participants.append(e["accepted"])
owners_name.append(e["owner_display_name"])
df = pd.DataFrame({
'タイトル': titles,
'開催日': event_date_set,
'参加者数': participants,
'管理者': owners_name
})
df.style.set_properties(**{'text-align': 'center'})
df
이렇게 간단한 파이톤 코드, 여기까지 할 수 있어서 정말 좋아요!!
제한 사항
시도에서 주의한 제한 사항을 총결해 보세요.
import streamlit as st
import pandas as pd
import requests, io
from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedelta
from PIL import Image
st.title('ギークラボイベント開催一覧')
image_url = 'https://connpass-tokyo.s3.amazonaws.com/thumbs/72/9d/729d521ab794e98b4427e9040e8f2fe9.png'
image = Image.open(io.BytesIO(requests.get(image_url).content))
st.image(image, use_column_width=True)
today = datetime.today()
startdate = datetime.strftime(today, '%Y%m')
enddate = "201402"
target_date_set = ['全件']
target_date_set.append(startdate)
while startdate > enddate:
dt = datetime.strptime(startdate, '%Y%m') - relativedelta(months=1)
startdate = dt.strftime("%Y%m")
target_date_set.append(startdate)
yyyymm = st.selectbox(
'イベント開催年月',
target_date_set
)
count = st.slider('取得件数', 0, 100, 10)
keyword = st.text_input('キーワード', '')
r = requests.get(f'https://connpass.com/api/v1/event/?series_id=2591&count={count}&ym={yyyymm}&keyword={keyword}')
titles = []
event_date_set = []
participants = []
owners_name = []
for e in r.json()["events"]:
titles.append(e["title"])
dt = datetime.fromisoformat(e["started_at"])
event_date_set.append(datetime.strftime(dt, '%Y/%m/%d'))
participants.append(e["accepted"])
owners_name.append(e["owner_display_name"])
df = pd.DataFrame({
'タイトル': titles,
'開催日': event_date_set,
'参加者数': participants,
'管理者': owners_name
})
df.style.set_properties(**{'text-align': 'center'})
df
시도에서 주의한 제한 사항을 총결해 보세요.
selectbox
프로그램 설계 https://share.streamlit.io/
에 requirements.txt
가 포함된 GiitHub 창고를 연결하면 예처리를 할 수 있습니다.
일주일 단위로 초대 메일을 알리는 것 같은데 시간이 좀 걸려야 사용할 수 있어요.
요청 메일을 받으면 필요한 사항만 입력하면 이런 느낌.에서 디자인됩니다.
최후
오랜만에 학습회에 참석해 터치해보고Streamlit
,'신난다','대단하다!'이렇게 생각하는 프로그램 라이브러리를 만났다.몇 가지 제한 사항이 있지만 데이터를 빨리 볼 수 있는 좋은 메커니즘이라고 생각합니다.
무엇보다 파이톤만 쓸 수 있는 게 좋아요.
개인이 지속적으로 포착하는 것은 매우 고생스러운 것이기 때문에 학습회에 참가하는 중요성을 다시 한 번 깨달았다!!.이 자리를 빌려 닉키 씨에게 감사 드립니다!!
Reference
이 문제에 관하여(파이썬만으로 웹을 할 수 있는 "Streamlit"을 시도해 본 적이 없어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/katekichi/items/9ca7a8e185ea1460c87c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
오랜만에 학습회에 참석해 터치해보고
Streamlit
,'신난다','대단하다!'이렇게 생각하는 프로그램 라이브러리를 만났다.몇 가지 제한 사항이 있지만 데이터를 빨리 볼 수 있는 좋은 메커니즘이라고 생각합니다.무엇보다 파이톤만 쓸 수 있는 게 좋아요.
개인이 지속적으로 포착하는 것은 매우 고생스러운 것이기 때문에 학습회에 참가하는 중요성을 다시 한 번 깨달았다!!.이 자리를 빌려 닉키 씨에게 감사 드립니다!!
Reference
이 문제에 관하여(파이썬만으로 웹을 할 수 있는 "Streamlit"을 시도해 본 적이 없어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/katekichi/items/9ca7a8e185ea1460c87c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)