Skip to content

StreamlitとFastAPIでCSVと画像ファイルを扱う最小限のコードです。

Notifications You must be signed in to change notification settings

okadajunji/streamlit-fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

概要

StreamlitとFastAPIでCSVファイルと画像ファイルを扱う最小限のコードです。
アプリURL: https://stream-it-fastapi.streamlit.app/

StreamlitとFastAPIの機能の切り分けの考え方

・主な機能はFastAPIで実装しましょう。
・FastAPIでは出来ないユーザーインターフェースの部分をStreamlitで実装しましょう。
・今回の場合では、ファイルのアップロードや処理結果の表示をStreamlitで実装しています。
※Streamlitで全て実装することも可能ですが、このようにを切り分けることでStreamlitの部分をNext.jsなどのモダンな環境で作成することが可能になります。

必要なライブラリ

requirements.txtに記載しています。

以下のコマンドでインストールすることができます。

pip install -r requirements.txt

ローカルでの実行コマンド

FastAPI

uvicorn main:app

Streamlit

streamlit run streamlit_app.py

デプロイ

FastAPI側をRenderへのデプロイ手順

Render URL: https://dashboard.render.com/

①『New+』をクリックします。
②『Web Service』をクリックします。
step1

③『Next』をクリックします。
step2

④デプロイするリポジトリの『Connect』をクリックします。
step3

⑤『Name』に任意のアプリ名を入力します。デプロイ時のURLに利用されます。
⑥『Start Command』にuvicorn main:app --host 0.0.0.0 --port 10000を入力します。
※このコマンドによりFastAPI側のmain.pyが実行されます。 step4

⑦『Create Web Service』をクリックします。
step5

⑧アプリの起動を確認します。
⑨『デプロイURL』をクリックします。
step6

{"message":"Hello World"}と表示されていれば成功です!
step7

これは以下の部分が対応しています。

@app.get("/")
async def root():
return {"message": "Hello World"}

Streamlit側をStreamlitShareへのデプロイ手順

Streamlit Share URL: https://share.streamlit.io/

①『New app』をクリックします。
step1

②デプロイするリポジトリをクリックします。
③公開するアプリURLを設定します。
④『Advanced settings...』をクリックします。
⑤『Secrets』に以下の内容を入力します。
 ([your-app-name]の部分は『FastAPI側をRenderへのデプロイ手順』の⑨を参照下さい)

RENDER_URL = "https://[your-app-name].onrender.com"

これは以下の部分が対応しています。

# FastAPIのエンドポイント
# Streamlit Share の環境変数へ Render のデプロイURLを設定する
# 環境変数に RENDER_URL が設定されていない場合はデフォルトのURLを設定する
url = os.environ.get("RENDER_URL") or 'http://localhost:8000'

⑥『Save』をクリックします。
⑦『Deploy!』をクリックします。
step2

CSVファイルや画像ファイルをアップロードして動作すれば成功です!
step3

以上、おつかれさまでした!!

About

StreamlitとFastAPIでCSVと画像ファイルを扱う最小限のコードです。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages