You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.2 KiB

Formulardaten und Dateien im Request

Sie können gleichzeitig Dateien und Formulardaten mit File und Form definieren.

/// info

Um hochgeladene Dateien und/oder Formulardaten zu empfangen, installieren Sie zuerst python-multipart.

Z. B. pip install python-multipart.

///

File und Form importieren

//// tab | Python 3.9+

{!> ../../../docs_src/request_forms_and_files/tutorial001_an_py39.py!}

////

//// tab | Python 3.8+

{!> ../../../docs_src/request_forms_and_files/tutorial001_an.py!}

////

//// tab | Python 3.8+ nicht annotiert

/// tip | "Tipp"

Bevorzugen Sie die Annotated-Version, falls möglich.

///

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

////

File und Form-Parameter definieren

Erstellen Sie Datei- und Formularparameter, so wie Sie es auch mit Body und Query machen würden:

//// tab | Python 3.9+

{!> ../../../docs_src/request_forms_and_files/tutorial001_an_py39.py!}

////

//// tab | Python 3.8+

{!> ../../../docs_src/request_forms_and_files/tutorial001_an.py!}

////

//// tab | Python 3.8+ nicht annotiert

/// tip | "Tipp"

Bevorzugen Sie die Annotated-Version, falls möglich.

///

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

////

Die Datei- und Formularfelder werden als Formulardaten hochgeladen, und Sie erhalten diese Dateien und Formularfelder.

Und Sie können einige der Dateien als bytes und einige als UploadFile deklarieren.

/// warning | "Achtung"

Sie können mehrere File- und Form-Parameter in einer Pfadoperation deklarieren, aber Sie können nicht gleichzeitig auch Body-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels multipart/form-data statt application/json kodiert.

Das ist keine Limitation von FastAPI, sondern Teil des HTTP-Protokolls.

///

Zusammenfassung

Verwenden Sie File und Form zusammen, wenn Sie Daten und Dateien zusammen im selben Request empfangen müssen.