> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 파일 및 표준 형식 데이터와 함께 다중 부분 양식 데이터를 보내는 방법은 무엇입니까?

Python에서 파일 및 표준 형식 데이터와 함께 다중 부분 양식 데이터를 보내는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-25 07:51:12
원래의
539명이 탐색했습니다.

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

Python에서 다중 부분 양식 데이터 요청을 구성하는 방법

질문: 요청 라이브러리를 사용하여 Python에서 다중 부분 양식 데이터를 어떻게 보낼 수 있습니까? 파일을 첨부하는 방법을 이해하지만 그러한 요청에 표준 형식 데이터를 통합하는 데 어려움을 겪고 있습니다.

답변:

요청은 파일을 첨부할 때 다중 부분 양식 데이터를 자동으로 처리합니다. 매개변수가 지정되어 application/x-www-form-urlencoded 대신 multipart/form-data POST 요청이 발생합니다. POST.

구문:

from requests import post

response = post(
    url,
    files={
        "form_field_name": "form_field_value",     # No quotes needed for non-string values
    }
)
로그인 후 복사

예:

response = post("http://httpbin.org/post", files={"foo": "bar"})
assert response.status_code == 200
로그인 후 복사

고급 제어:

튜플을 사용하여 맞춤설정 각 부분의 파일 이름, 콘텐츠 유형 및 추가 헤더. 튜플 구성 요소에는 다음이 포함됩니다.

  • 파일 이름(선택 사항)
  • 콘텐츠
  • 콘텐츠 유형(선택 사항)
  • 헤더 사전 (선택 사항)

예:

files = {"foo": (None, "bar")}   # No filename specified
로그인 후 복사

정렬된 여러 필드:

튜플 목록 사용 동일한 순서가 지정된 필드 또는 여러 필드의 경우 name.

데이터 및 파일 처리:

데이터와 파일을 모두 사용하는 경우 문자열 데이터 매개변수가 우선 적용됩니다. 그렇지 않으면 데이터와 파일이 모두 요청에 결합됩니다.

선택적 라이브러리:

requests-toolbelt 프로젝트는 다음을 허용하는 고급 멀티파트 지원을 제공합니다.

  • 파일 개체에서 스트리밍
  • 기본 파일 이름 없음 매개변수
  • 튜플을 사용한 사용자 정의 파일 이름, 부분 MIME 유형 및 추가 헤더

requests-toolbelt의 예:

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}
)
로그인 후 복사

참고: 요청 도구 벨트 방법의 경우 files= 인수를 사용하지 마세요. MultipartEncoder가 데이터 페이로드로 게시되기 때문입니다.

위 내용은 Python에서 파일 및 표준 형식 데이터와 함께 다중 부분 양식 데이터를 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿