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