😎

streamlitの調査

2023/08/16に公開

streamlitでできること

ログイン認証

データベースと接続

ルーティング

secrets管理

ステート管理

3rd party製のコンポーネント使う

HTTPSとしてhosting

Cloud serviceもある

paging

調査してみて感想

  • 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

  1. Githubのrepositoryを作成
    • package管理はpoetryを使う
  2. 以下の記事のpoetryのDockerfileをrepositoryのルートに置く
  3. 以下の記事を参考にCloud Runのコンソールでポチポチしながらdeploy設定
  4. 最後にドメイン設定

Discussion