from fastapi import File, Form, UploadFile
from pydantic import BaseModel
class TestFormDataCommand(BaseModel):
name: str
image: UploadFile
nullable_image: UploadFile | None
images: list[UploadFile]
@classmethod
def as_form(
cls,
name: str = Form(),
image: UploadFile = File(),
nullable_image: UploadFile | None = None,
images: list[UploadFile] = [], # File(default=[])
):
# Do Validation!
return cls(
name=name,
image=image,
nullable_image=nullable_image,
images=images,
)
@router.post("/test")
async def test(command: TestFormDataCommand = Depends(TestFormDataCommand.as_form)):
print(f"name: {command.name}")
print(f"image: {command.image}")
print(f"nullable_image: {command.nullable_image}")
if command.nullable_image:
print(f"desc: {command.nullable_image.__dict__}")
print(f"images: {command.images}")
for i in command.images:
print(f"list i: {i.__dict__}")
이미지 파일에 대한 속성입니다.
# from FastAPI import UploadFile
"file": {
"filename": "test.jpg",
"file": {
"_file": {},
"_max_size": 1048576,
"_rolled": false,
"_TemporaryFileArgs": {
"mode": "w+b",
"buffering": -1,
"suffix": null,
"prefix": null,
"encoding": null,
"newline": null,
"dir": null,
"errors": null
}
},
"size": 7487,
"headers": {
"content-disposition": "form-data; name=\"file\"; filename=\"test.jpg\"",
"content-type": "image/jpeg"
}
}
'파이썬' 카테고리의 다른 글
| 파이썬 임시 이미지 파일 처리 (0) | 2024.11.10 |
|---|---|
| AES256 파이썬 구현 (MODE_EAX, MODE_CBC) (0) | 2024.10.23 |
| FastAPI Request에서 form-data, query string 읽기 (0) | 2024.10.10 |
| 파이썬 requests SSLError 발생 (운영 환경) (0) | 2024.10.10 |
| KISA 128bit SEED CBC 파이썬 구현 (1) | 2024.09.30 |