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を一緒に使用します。