mirror of https://github.com/tiangolo/fastapi.git
1.8 KiB
1.8 KiB
リクエストフォームとファイル
FileとFormを同時に使うことでファイルとフォームフィールドを定義することができます。
!!! info "情報"
アップロードされたファイルやフォームデータを受信するには、まずpython-multipartをインストールします。
例えば、`pip install python-multipart`のように。
FileとFormのインポート
{!../../../docs_src/request_forms_and_files/tutorial001.py!}
FileとFormのパラメータの定義
ファイルやフォームのパラメータはBodyやQueryの場合と同じように作成します:
{!../../../docs_src/request_forms_and_files/tutorial001.py!}
ファイルとフォームフィールドがフォームデータとしてアップロードされ、ファイルとフォームフィールドを受け取ります。
また、いくつかのファイルをbytesとして、いくつかのファイルをUploadFileとして宣言することができます。
!!! warning "注意"
path operationで複数のFileとFormパラメータを宣言することができますが、JSONとして受け取ることを期待しているBodyフィールドを宣言することはできません。なぜなら、リクエストのボディはapplication/jsonの代わりにmultipart/form-dataを使ってエンコードされているからです。
これは **FastAPI** の制限ではなく、HTTPプロトコルの一部です。
まとめ
同じリクエストでデータやファイルを受け取る必要がある場合は、File とFormを一緒に使用します。