fastapi/docs/ja/docs/tutorial/request-forms-and-files.md

1.8 KiB

リクエストフォームとファイル

FileFormを同時に使うことでファイルとフォームフィールドを定義することができます。

!!! info "情報" アップロードされたファイルやフォームデータを受信するには、まずpython-multipartをインストールします。

例えば、`pip install python-multipart`のように。

FileFormのインポート

{!../../../docs_src/request_forms_and_files/tutorial001.py!}

FileFormのパラメータの定義

ファイルやフォームのパラメータはBodyQueryの場合と同じように作成します:

{!../../../docs_src/request_forms_and_files/tutorial001.py!}

ファイルとフォームフィールドがフォームデータとしてアップロードされ、ファイルとフォームフィールドを受け取ります。

また、いくつかのファイルをbytesとして、いくつかのファイルをUploadFileとして宣言することができます。

!!! warning "注意" path operationで複数のFileFormパラメータを宣言することができますが、JSONとして受け取ることを期待しているBodyフィールドを宣言することはできません。なぜなら、リクエストのボディはapplication/jsonの代わりにmultipart/form-dataを使ってエンコードされているからです。

これは **FastAPI** の制限ではなく、HTTPプロトコルの一部です。

まとめ

同じリクエストでデータやファイルを受け取る必要がある場合は、FileFormを一緒に使用します。