Heim >Backend-Entwicklung >Python-Tutorial >Wie sende ich Multipart-/Formulardaten mit Dateien und Formulardaten mithilfe der Requests-Bibliothek von Python?

Wie sende ich Multipart-/Formulardaten mit Dateien und Formulardaten mithilfe der Requests-Bibliothek von Python?

Barbara Streisand
Barbara StreisandOriginal
2024-12-13 12:25:13400Durchsuche

How to Send Multipart/Form-Data with Files and Form Data Using Python's Requests Library?

Senden von Multipart-/Formulardaten mithilfe von Anfragen in Python

Multipart/Formulardaten ist ein Anfrageformat, das sowohl Formulardaten als auch Dateien, die in einer einzigen Anfrage gesendet werden sollen. Um dieses Format mit Anfragen in Python zu verwenden, geben Sie einen Dateiparameter an, der ein Wörterbuch sein sollte, in dem die Schlüssel Formulardatenparameternamen und die Werte entweder Dateipfade oder Tupel mit Dateiinhalten sind.

Das folgende Beispiel zeigt Senden einer Datei zusammen mit einem Textformwert:

import requests

files = {'file_field': 'path/to/file.ext', 'text_field': 'text_value'}

response = requests.post('http://example.com/upload', files=files)

Dateinamen und Inhaltstyp steuern

Sie können steuern Dateiname und Inhaltstyp jedes Teils mithilfe eines Tupels als Wert im Dateiwörterbuch. Das Tupel sollte 2 bis 4 Elemente enthalten, wie folgt:

  • Element 1: Dateiname (optional)
  • Element 2: Inhalt
  • Element 3 (optional):Inhalt Typ
  • Element 4 (optional): zusätzliche Kopfzeilen

Zum Beispiel, um einen Dateinamen und einen Inhaltstyp für einen Textwert anzugeben:

files = {'text_field': (None, 'text_value', 'text/plain')}

Angeben mehrerer Felder mit demselben Namen

Um mehrere Felder mit dem zu senden Wenn Sie denselben Namen haben, verwenden Sie eine Liste von Tupeln als Wert im Dateiwörterbuch.

Verwenden von Requests-Toolbelt für erweiterte Multipart-Unterstützung

Das Requests-Toolbelt-Projekt bietet erweitertes Multipart Unterstützung. Im Gegensatz zu Anfragen wird standardmäßig kein Dateinamenparameter festgelegt und das Streamen von Feldern aus geöffneten Dateiobjekten ermöglicht.

Hier ist ein Beispiel für die Verwendung von „requests-toolbelt“:

from requests_toolbelt.multipart.encoder import MultipartEncoder

mp_encoder = MultipartEncoder(
    fields={
        'file_field': ('file.ext', open('path/to/file.ext', 'rb'), 'application/octet-stream'),
        'text_field': 'text_value',
    }
)

response = requests.post(
    'http://example.com/upload',
    data=mp_encoder,
    headers={'Content-Type': mp_encoder.content_type}
)

Das obige ist der detaillierte Inhalt vonWie sende ich Multipart-/Formulardaten mit Dateien und Formulardaten mithilfe der Requests-Bibliothek von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn