Coverage for docs_src/request_files/tutorial002_an.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-05-05 00:03 +0000

1from typing import List 1abcdef

2 

3from fastapi import FastAPI, File, UploadFile 1abcdef

4from fastapi.responses import HTMLResponse 1abcdef

5from typing_extensions import Annotated 1abcdef

6 

7app = FastAPI() 1abcdef

8 

9 

10@app.post("/files/") 1abcdef

11async def create_files(files: Annotated[List[bytes], File()]): 1abcdef

12 return {"file_sizes": [len(file) for file in files]} 1mnopqr

13 

14 

15@app.post("/uploadfiles/") 1abcdef

16async def create_upload_files(files: List[UploadFile]): 1abcdef

17 return {"filenames": [file.filename for file in files]} 1stuvwx

18 

19 

20@app.get("/") 1abcdef

21async def main(): 1abcdef

22 content = """ 1ghijkl

23<body> 

24<form action="/files/" enctype="multipart/form-data" method="post"> 

25<input name="files" type="file" multiple> 

26<input type="submit"> 

27</form> 

28<form action="/uploadfiles/" enctype="multipart/form-data" method="post"> 

29<input name="files" type="file" multiple> 

30<input type="submit"> 

31</form> 

32</body> 

33 """ 

34 return HTMLResponse(content=content) 1ghijkl