Maison > développement back-end > Tutoriel Python > Comment envoyer des données multiparts/formulaires avec des fichiers et des données de formulaire à l'aide de la bibliothèque de requêtes de Python ?

Comment envoyer des données multiparts/formulaires avec des fichiers et des données de formulaire à l'aide de la bibliothèque de requêtes de Python ?

Barbara Streisand
Libérer: 2024-12-13 12:25:13
original
404 Les gens l'ont consulté

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

Envoi de données Multipart/Form à l'aide de requêtes en Python

Multipart/form-data est un format de requête qui permet à la fois les données de formulaire et fichiers à envoyer en une seule demande. Pour utiliser ce format avec des requêtes en Python, spécifiez un paramètre de fichiers, qui doit être un dictionnaire où les clés sont des noms de paramètres de données de formulaire et les valeurs sont soit des chemins de fichiers, soit des tuples contenant le contenu du fichier.

L'exemple suivant illustre envoyer un fichier avec une valeur de formulaire texte :

import requests

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

response = requests.post('http://example.com/upload', files=files)
Copier après la connexion

Contrôler le nom de fichier et le type de contenu

Vous pouvez contrôler le nom de fichier et type de contenu de chaque partie en utilisant un tuple comme valeur dans le dictionnaire de fichiers. Le tuple doit contenir 2 à 4 éléments, comme suit :

  • Élément 1 : nom de fichier (facultatif)
  • Élément 2 : contenu
  • Élément 3 (facultatif) : contenu tapez
  • Élément 4 (facultatif) : en-têtes supplémentaires

Par exemple, pour spécifier un nom de fichier et un type de contenu pour une valeur de texte :

files = {'text_field': (None, 'text_value', 'text/plain')}
Copier après la connexion

Spécifier plusieurs champs avec le même nom

Pour envoyer plusieurs champs avec le même nom, utilisez une liste de tuples comme valeur dans le dictionnaire de fichiers.

Utilisation de Requests-Toolbelt pour une prise en charge multipart avancée

Le projet request-toolbelt fournit des Prise en charge en plusieurs parties. Contrairement aux requêtes, par défaut, il ne définit pas de paramètre de nom de fichier et permet aux champs d'être diffusés à partir d'objets de fichiers ouverts.

Voici un exemple utilisant requêtes-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}
)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal