Formularios y archivos del request¶
🌐 Traducción por IA y humanos
Esta traducción fue hecha por IA guiada por humanos. 🤝
Podría tener errores al interpretar el significado original, o sonar poco natural, etc. 🤖
Puedes mejorar esta traducciónayudándonos a guiar mejor al LLM de IA.
Puedes definir archivos y campos de formulario al mismo tiempo usandoFile yForm.
Información
Para recibir archivos subidos y/o form data, primero instalapython-multipart.
Asegúrate de crear unentorno virtual, actívalo y luego instálalo, por ejemplo:
$pipinstallpython-multipartImportaFile yForm¶
fromtypingimportAnnotatedfromfastapiimportFastAPI,File,Form,UploadFileapp=FastAPI()@app.post("/files/")asyncdefcreate_file(file:Annotated[bytes,File()],fileb:Annotated[UploadFile,File()],token:Annotated[str,Form()],):return{"file_size":len(file),"token":token,"fileb_content_type":fileb.content_type,}🤓 Other versions and variants
Tip
Prefer to use theAnnotated version if possible.
fromfastapiimportFastAPI,File,Form,UploadFileapp=FastAPI()@app.post("/files/")asyncdefcreate_file(file:bytes=File(),fileb:UploadFile=File(),token:str=Form()):return{"file_size":len(file),"token":token,"fileb_content_type":fileb.content_type,}Define parámetrosFile yForm¶
Crea parámetros de archivo y formulario de la misma manera que lo harías paraBody oQuery:
fromtypingimportAnnotatedfromfastapiimportFastAPI,File,Form,UploadFileapp=FastAPI()@app.post("/files/")asyncdefcreate_file(file:Annotated[bytes,File()],fileb:Annotated[UploadFile,File()],token:Annotated[str,Form()],):return{"file_size":len(file),"token":token,"fileb_content_type":fileb.content_type,}🤓 Other versions and variants
Tip
Prefer to use theAnnotated version if possible.
fromfastapiimportFastAPI,File,Form,UploadFileapp=FastAPI()@app.post("/files/")asyncdefcreate_file(file:bytes=File(),fileb:UploadFile=File(),token:str=Form()):return{"file_size":len(file),"token":token,"fileb_content_type":fileb.content_type,}Los archivos y campos de formulario se subirán como form data y recibirás los archivos y campos de formulario.
Y puedes declarar algunos de los archivos comobytes y algunos comoUploadFile.
Advertencia
Puedes declarar múltiples parámetrosFile yForm en unapath operation, pero no puedes también declarar camposBody que esperas recibir como JSON, ya que el request tendrá el body codificado usandomultipart/form-data en lugar deapplication/json.
Esto no es una limitación deFastAPI, es parte del protocolo HTTP.
Resumen¶
UsaFile yForm juntos cuando necesites recibir datos y archivos en el mismo request.







