mirror of
https://github.com/fastapi/fastapi.git
synced 2026-07-12 07:57:18 -04:00
* Update all
* Add missing
* 🎨 Auto format
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1.5 KiB
1.5 KiB
請求中的表單與檔案
你可以使用 File 與 Form 同時定義檔案與表單欄位。
/// info
要接收上傳的檔案與/或表單資料,請先安裝 python-multipart。
請先建立並啟用一個 虛擬環境{.internal-link target=_blank},然後再安裝,例如:
$ pip install python-multipart
///
匯入 File 與 Form
{* ../../docs_src/request_forms_and_files/tutorial001_an_py310.py hl[3] *}
定義 File 與 Form 參數
以與 Body 或 Query 相同的方式建立檔案與表單參數:
{* ../../docs_src/request_forms_and_files/tutorial001_an_py310.py hl[10:12] *}
檔案與表單欄位會作為表單資料上傳,而你將能接收到這些檔案與欄位。
你也可以將部分檔案宣告為 bytes,另一些宣告為 UploadFile。
/// warning
你可以在一個路徑操作 (path operation) 中宣告多個 File 與 Form 參數,但不能同時再宣告預期以 JSON 接收的 Body 欄位,因為該請求的本文會使用 multipart/form-data 而非 application/json 進行編碼。
這不是 FastAPI 的限制,這是 HTTP 通訊協定本身的規範。
///
小結
當你需要在同一個請求中同時接收資料與檔案時,請搭配使用 File 與 Form。