https://fastapi.tiangolo.com/tutorial/request-forms/
Form Data - FastAPI
Form Data When you need to receive form fields instead of JSON, you can use Form. Info To use forms, first install python-multipart. E.g. pip install python-multipart. Import Form Import Form from fastapi: Define Form parameters Create form parameters the
fastapi.tiangolo.com
<FastAPI 공식문서 참조>
0. Form Data
형식 필드(form field)를 JSON type 대신 사용할 수 있다.
1. Import Form
from typing import Annotated
from fastapi import FastAPI, Form
app = FastAPI()
@app.post("/login/")
async def login(username: Annotated[str, Form()], password: Annotated[str, Form()]):
return {"username": username}
2. Define Form parameters
Body 및 Query 형과 같은 방버으로 Form 매개변수를 정의할 수 있다.
@app.post("/login/")
async def login(username: Annotated[str, Form()], password: Annotated[str, Form()]):
return {"username": username}
위의 예제에서, password flow로 사용되는 OAuth2 명세의 방법 중 하나는
form 필드형식으로 된 username과 password가 필요하다.
정확히 username과 password로 된 자료형이 필요해 form field를 사용해야 한다.
위처럼 선언시 Body에서 얻을 수 있는 구성(유효성 검정, 예시, alias 규칙)들을 다 사용할 수 있다.
* Form은 Body를 직접 상속한 클래스이다.
3. About "Form Fields"
form tag로 서버에 전해지는 데이터는 JSON과 다르다.
따라서 FastAPI는 form data가 form data로 잘 읽히도록 보장해줘야하고, 보장해 준다.
* form형식의 데이터는 보통 media type을 사용해 인코드된다.
4. References
https://fastapi.tiangolo.com/tutorial/request-forms/
Form Data - FastAPI
Form Data When you need to receive form fields instead of JSON, you can use Form. Info To use forms, first install python-multipart. E.g. pip install python-multipart. Import Form Import Form from fastapi: Define Form parameters Create form parameters the
fastapi.tiangolo.com
'프레임워크 > FastAPI' 카테고리의 다른 글
[FastAPI] FastAPI [19] Request Forms and Files (0) | 2023.05.09 |
---|---|
[FastAPI] FastAPI [18] Request Files (0) | 2023.05.09 |
[FastAPI] FastAPI [16] Extra Models (0) | 2023.05.02 |
[FastAPI] FastAPI [15] Response model 2 - Other Return Type Annotations (0) | 2023.04.25 |
[FastAPI] FastAPI [14] Response model - Return Type (0) | 2023.04.25 |