Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menghantar Data Borang Berbilang Bahagian dengan Fail dan Data Borang Standard dalam Python?

Bagaimana untuk Menghantar Data Borang Berbilang Bahagian dengan Fail dan Data Borang Standard dalam Python?

Patricia Arquette
Lepaskan: 2024-12-25 07:51:12
asal
540 orang telah melayarinya

How to Send Multipart Form Data with Files and Standard Form Data in Python?

Cara Membina Permintaan Data Borang Berbilang Bahagian dalam Python

Soalan: Bagaimanakah saya boleh menghantar data borang berbilang bahagian dalam Python menggunakan perpustakaan permintaan? Walaupun saya memahami cara untuk melampirkan fail, saya sedang bergelut untuk memasukkan data borang standard ke dalam permintaan sedemikian.

Jawapan:

Permintaan mengendalikan data borang berbilang bahagian secara automatik apabila fail parameter ditentukan, menghasilkan permintaan POST berbilang/borang-data dan bukannya aplikasi/x-www-form-urlencoded POST.

Sintaks:

from requests import post

response = post(
    url,
    files={
        "form_field_name": "form_field_value",     # No quotes needed for non-string values
    }
)
Salin selepas log masuk

Contoh:

response = post("http://httpbin.org/post", files={"foo": "bar"})
assert response.status_code == 200
Salin selepas log masuk

Kawalan Lanjutan:

Gunakan tupel untuk menyesuaikan nama fail, jenis kandungan dan tambahan tajuk untuk setiap bahagian. Komponen Tuple termasuk:

  • Nama fail (pilihan)
  • Kandungan
  • Jenis kandungan (pilihan)
  • Kamus pengepala (pilihan)

Contoh:

files = {"foo": (None, "bar")}   # No filename specified
Salin selepas log masuk

Tempahan Medan Berbilang:

Gunakan senarai tupel untuk tertib atau berbilang medan dengan medan yang sama name.

Mengendalikan Data dan Fail:

Apabila menggunakan kedua-dua data dan fail, parameter data rentetan akan diutamakan. Jika tidak, kedua-dua data dan fail digabungkan dalam permintaan.

Pustaka Pilihan:

Projek requests-toolbelt menyediakan sokongan Berbilang Bahagian lanjutan, membenarkan:

  • Menstrim daripada objek fail
  • Tiada nama fail lalai parameter
  • Nama fail tersuai, jenis mim bahagian dan pengepala tambahan menggunakan tupel

Contoh dengan tali pinggang alat permintaan:

import MultipartEncoder from requests_toolbelt

fields = {
    "foo": b"bar",    # Fields support bytes objects
    "spam": ("spam.txt", open("spam.txt", "rb"), "text/plain")   # Stream files
}

mp_encoder = MultipartEncoder(fields)

response = post(
    url,
    data=mp_encoder,
    headers={"Content-Type": mp_encoder.content_type}
)
Salin selepas log masuk

Nota: Untuk kaedah requests-toolbelt, jangan gunakan files= argument sebagai MultipartEncoder disiarkan sebagai muatan data.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data Borang Berbilang Bahagian dengan Fail dan Data Borang Standard dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan