それでは毛玉諸君、これにて失敬

日々の精進を備忘録的に綴ります。

streamlit事始め

子育てしながらお仕事する全人類を尊敬します。ko_ya346です。
最近streamlitで遊んでいたので、やったことをまとめていきます。

streamlitとは?

とても簡単にwebアプリを作ることが出来るフレームワーク(という認識)。
pythonのwebアプリケーションのフレームワークだとDjangoやflaskが有名ですが、それらに比べて簡単にデプロイまで行うことが出来るので、主にデータ分析者向けのフレームワークらしいです。
以前flaskを触ってみたけどweb関連の知識がなかったので苦戦した記憶があります。。。

んで、何を作ったの?

bitcoinのOHLCデータからローソク足グラフを表示するやつを作りました。
グラフに表示する期間とローソク足期間を任意に変更できるようにしました。
https://ko-ya346-prac-streamlit-view-bitcoin-kb7gf5.streamlitapp.com/

左側のバー:表示期間、中央のドロップダウンリスト:ローソク足期間

やったこと

公式docとチュートリアルを読む

公式は正義。英語に屈してはいけない。

streamlit.io

docs.streamlit.io

bitcoinデータをgoogle driveに保存して共有化する

データはこれ。

www.kaggle.com

google drive上のファイルを読み込むにはURLを少し変える必要があります。
また、ファイルサイズが大きいとウイルススキャン警告が出てうまく読み込めません。その場合はGCPgoogle driveAPI Keyを作成し、URLに付け加える必要があります。
ウイルススキャン警告を回避する方法はこちらを参照しました。ほかにも方法があるみたいです(試してはいない) 。

bytesbin.com

コード書いてgithubに上げる

こんな感じ。

github.com

streamlit cloudを使ってデプロイ

ここが感動ポイントだったんですが、streamlit cloudを利用することでgithubリポジトリをそのままデプロイすることが出来るんです!!!
streamlit cloudにgithubアカウントでログインしてリポジトリを指定するだけで終わり!
参考URL↓ sakizo-blog.com

その他つまづきポイント

外部パッケージを使用する場合はrequirements.txtにパッケージ名を記載すれば使用できます。
streamlit cloud上でシークレット情報を使いたいときは、Streamlitのシークレット機能を使うことで安全に使用できます。クラウド、ローカルともにソースコードを変える必要がないので便利ですね。
参考↓

qiita.com

感想

想像以上に簡単にwebアプリを作成できたことに感動しています。何かコーディングで制作物を作る、という経験はこれまで得てきてないので、喜びもひとしおです。ありがとうstreamlit。。。
まだまだ機能はたくさんあるみたいなので、使い倒していきたいなと思いました。