FastAPIメモ
FastAPIの自分用メモです。
複数ファイルのアップロード方法
- FastAPIで一つのファイルをアップロードする場合、 例として以下のように記述する。
app = FastAPI()
@app.post("/api/")
async def upload(
students:UploadFile = File(...)
):
...
- 呼び出し側から2つ以上のファイルをアップロードする場合
- 下記は名前がstudentsとteachersに分かれている。
curl -X POST -F students=@students.csv -F teachers=@teachers.csv http://localhost:8000/api
以下のように記述することでそれぞれ別に取得できる。
app = FastAPI()
@app.post("/api/")
async def upload(
students:UploadFile = File(...),
teachers:UploadFile = File(...)
):
...
(とりあえずなんでも受け取れるようにして、後から一致する名前で取り出したいが方法を調査中)
変数に格納されているCSVをファイル形式で出力する方法
- PandasのDataframeをCSVに変換して、それを返す。
- FileResponseを使用するとファイルパスが必要になるので、Responseで記述
data_csv = data_df.to_csv(index=False)
response = Response(content=data_csv, media_type="text/csv")
return response