😎
streamlitの調査
streamlit でできること
ログイン認証
- 通常のログイン機能
- auth0(SSO)
- firebase (SSO できるはず)
データベースと接続
ルーティング
secrets 管理
ステート管理
3rd party 製のコンポーネント使う
- Components - Streamlit Docs
- menubar
- アノテーションツールも作れそう
HTTPS として hosting
Cloud service もある
paging
- streamlit-aggrid で dataframe を可視化 | kajiblo IT ブログ
- Streamlit: Search filtering and pagination widget | by Emily Nguyen | Streamlit | Jul, 2023 | Medium
- Paginating dataframes with Streamlit | by Carlos D Serrano | Streamlit | Medium
- Answer: A simple paginator in Streamlit
調査してみて感想
- streamlit、できることが予想以上に多かった。
- 単にグラフを可視化する程度のものだと思ってた
- ほとんどの管理画面、streamlit で実装できてしまうのでは?
- 入力 UI もあるし
- DB との接続もできる
- web アプリ作る環境が整っている
- プロトタイプは python 一強になるのでは?
- AI 化が進むと、データを扱いやすい言語が重要になる(データが差別化要因になるから)
- ウェブアプリも python だけで実装したい
- プロトタイプの後に、他の言語に移行すればいい
実際に触ってみて感想
管理画面作るのはやっぱりしんどいかも
- かゆいところに手が届かない(自作しないといけない雰囲気)
- dataframe を paging + 1 列追加して編集ボタンを置く、とか
- よくあるけど、この API はない。component もなさそう
- view とロジックが混在するのでうまく書かないとどういう view になるのかがパッと見ではわからなくなる
- チーム開発しにくそう
- 普通に front 書いたほうが早いとか思いそう
Cloud service はあまり使えないかも
- 独自ドメイン設定できない
- code が public でかつドメインが重要じゃないものがそんなにない気がする
- Cloud Run で簡単に hosting するほうが良さそう
Cloud Run で独自ドメインに streamlit を deploy
- Github の repository を作成
- package 管理は poetry を使う
- 以下の記事の poetry の Dockerfile を repository のルートに置く
- 以下の記事を参考に Cloud Run のコンソールでポチポチしながら deploy 設定
- クイックスタート: Git リポジトリから Cloud Run にデプロイする | Cloud Run のドキュメント | Google Cloud
- ドメイン設定の制約上、リージョンは
asia-northeast1にする
- 最後にドメイン設定
Discussion