Movatterモバイル変換


[0]ホーム

URL:


콘텐츠로 이동
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

폼 데이터

🌐 AI와 사람이 함께한 번역

이 번역은 사람의 안내를 받아 AI가 만들었습니다. 🤝

원문의 의미를 오해하거나 부자연스러워 보이는 등 오류가 있을 수 있습니다. 🤖

AI LLM을 더 잘 안내하는 데 도움을 주세요.

영문 버전

JSON 대신 폼 필드를 받아야 하는 경우Form을 사용할 수 있습니다.

정보

폼을 사용하려면, 먼저python-multipart를 설치하세요.

가상 환경을 생성하고 활성화한 다음, 아래와 같이 설치할 수 있습니다:

$pipinstallpython-multipart

Form 임포트하기

fastapi에서Form을 임포트합니다:

fromtypingimportAnnotatedfromfastapiimportFastAPI,Formapp=FastAPI()@app.post("/login/")asyncdeflogin(username:Annotated[str,Form()],password:Annotated[str,Form()]):return{"username":username}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,Formapp=FastAPI()@app.post("/login/")asyncdeflogin(username:str=Form(),password:str=Form()):return{"username":username}

Form 매개변수 정의하기

Body 또는Query와 동일한 방식으로 폼 매개변수를 만듭니다:

fromtypingimportAnnotatedfromfastapiimportFastAPI,Formapp=FastAPI()@app.post("/login/")asyncdeflogin(username:Annotated[str,Form()],password:Annotated[str,Form()]):return{"username":username}
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,Formapp=FastAPI()@app.post("/login/")asyncdeflogin(username:str=Form(),password:str=Form()):return{"username":username}

예를 들어, OAuth2 사양을 사용할 수 있는 방법 중 하나("패스워드 플로우"라고 함)로usernamepassword를 폼 필드로 보내야 합니다.

사양에서는 필드 이름이usernamepassword로 정확하게 명명되어야 하고, JSON이 아닌 폼 필드로 전송해야 합니다.

Form을 사용하면 유효성 검사, 예제, 별칭(예:username 대신user-name) 등을 포함하여Body(및Query,Path,Cookie)와 동일한 구성을 선언할 수 있습니다.

정보

FormBody에서 직접 상속되는 클래스입니다.

폼 본문을 선언할 때, 폼이 없으면 매개변수가 쿼리 매개변수나 본문(JSON) 매개변수로 해석(interpret)되기 때문에Form을 명시적으로 사용해야 합니다.

"폼 필드"에 대해

HTML 폼(<form></form>)이 데이터를 서버로 보내는 방식은 일반적으로 해당 데이터에 대해 "특수" 인코딩을 사용하며, 이는 JSON과 다릅니다.

FastAPI는 JSON 대신 올바른 위치에서 해당 데이터를 읽습니다.

기술 세부사항

폼의 데이터는 일반적으로 "미디어 유형(media type)"application/x-www-form-urlencoded를 사용하여 인코딩합니다.

그러나 폼에 파일이 포함된 경우,multipart/form-data로 인코딩합니다. 다음 장에서 파일 처리에 대해 읽을 겁니다.

이러한 인코딩 및 폼 필드에 대해 더 읽고 싶다면,MDN 웹 문서를 참조하세요POST에 대한.

경고

경로 처리에서 여러Form 매개변수를 선언할 수 있지만, JSON으로 수신할 것으로 예상되는Body 필드와 함께 선언할 수 없습니다. 요청 본문은application/json 대신에application/x-www-form-urlencoded를 사용하여 인코딩되기 때문입니다.

이는FastAPI의 제한 사항이 아니며 HTTP 프로토콜의 일부입니다.

요약

폼 데이터 입력 매개변수를 선언하려면Form을 사용하세요.


[8]ページ先頭

©2009-2026 Movatter.jp