Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghantar Multipart/Borang-Data dengan Fail dan Data Borang Menggunakan Perpustakaan Permintaan Python?

Bagaimana untuk Menghantar Multipart/Borang-Data dengan Fail dan Data Borang Menggunakan Perpustakaan Permintaan Python?

Barbara Streisand
Barbara Streisandasal
2024-12-13 12:25:13399semak imbas

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

Menghantar Multipart/Borang-Data Menggunakan Permintaan dalam Python

Multipart/form-data ialah format permintaan yang membenarkan kedua-dua data borang dan fail untuk dihantar dalam satu permintaan. Untuk menggunakan format ini dengan permintaan dalam Python, nyatakan parameter fail, yang sepatutnya menjadi kamus yang kuncinya ialah nama parameter data bentuk dan nilainya sama ada laluan fail atau tuple yang mengandungi kandungan fail.

Contoh berikut menunjukkan menghantar fail bersama-sama dengan nilai bentuk teks:

import requests

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

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

Mengawal Nama Fail dan Kandungan Taip

Anda boleh mengawal nama fail dan jenis kandungan setiap bahagian dengan menggunakan tuple sebagai nilai dalam kamus fail. Tuple hendaklah mengandungi 2 hingga 4 elemen, seperti berikut:

  • Elemen 1: nama fail (pilihan)
  • Elemen 2: kandungan
  • Elemen 3 (pilihan): kandungan taip
  • Elemen 4 (pilihan): pengepala tambahan

Sebagai contoh, untuk menentukan nama fail dan jenis kandungan untuk nilai teks:

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

Menentukan Berbilang Medan dengan Nama Yang Sama

Untuk menghantar berbilang medan dengan nama yang sama, gunakan senarai tupel sebagai nilai dalam kamus fail.

Menggunakan Requests-Toolbelt untuk Advanced Multipart Support

The requests-toolbelt projek menyediakan sokongan Multipart maju. Tidak seperti permintaan, ia lalai untuk tidak menetapkan parameter nama fail dan membenarkan medan distrim daripada objek fail terbuka.

Berikut ialah contoh menggunakan tali pinggang-permintaan:

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}
)

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Multipart/Borang-Data dengan Fail dan Data Borang Menggunakan Perpustakaan Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn