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 } )
Contoh:
response = post("http://httpbin.org/post", files={"foo": "bar"}) assert response.status_code == 200
Kawalan Lanjutan:
Gunakan tupel untuk menyesuaikan nama fail, jenis kandungan dan tambahan tajuk untuk setiap bahagian. Komponen Tuple termasuk:
Contoh:
files = {"foo": (None, "bar")} # No filename specified
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:
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} )
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!