await send({"type": "http.response.body", "body": b"", "more_body": False}) else: # Tentatively ignoring type checking failure to work around the wrong type # definitions for aiofile that come with typeshed. See # https://github.com/python/typeshed/pull/4650 async with aiofiles.open...
media_type- 一个给出媒体类型的str,比如"text/html"。 FastAPI(实际上是 Starlette)将自动包含 Content-Length 的头。它还将包含一个基于 media_type 的 Content-Type 头,并为文本类型附加一个字符集。 Python 3.8+ fromfastapiimportFastAPI,Responseapp=FastAPI()@app.get("/legacy/")defget_legacy_data()...
media_type:media type,如果没有设置则会根据文件名或文件路径来推断media type filename:文件名。如果设置,会被包含到response的Content-Disposition中 文件response会包含合适的Content-Length, Last-Modified 以及 ETag 头信息内容 fromfastapiimportFastAPIfromfastapi.responsesimportFileResponse some_file_path="large-v...
from fastapi import FastAPI from fastapi.responses import StreamingResponse app = FastAPI() class MyCustomResponse(StreamingResponse): media_type = "image/jpeg" # 将文件类型写在这里 @app.get("/img", response_class=MyCustomResponse) # 指定 MyCustomResponse def image(): def iterfile(): with o...
return FileResponse(file_path, media_type='application/octet-stream', filename="file.zip") 8.流式响应(Streaming Response) 使用StreamingResponse返回流式数据,如大文件或音频、视频等。 from fastapi import FastAPI from fastapi.responses import StreamingResponse ...
media_type:响应类型(就是响应头里面的 Content-Type,这里单独作为一个参数出现了,其实通过 headers 参数设置也是可以的); background:接收一个任务,Response 在返回之后会自动异步执行(这里先不做介绍,后面会说); 举个例子: from fastapi import FastAPI, Request, Response ...
returnFileResponse('文件路径.xls', filename='下载的文件.xls') 返回视频 deffile(): file=open("demo.mp4",'rb') returnStreamingResponse(file, media_type='video/mp4') 但是这个会一次性读取视频,如果很大,加载速度会很慢: 最好的方式是通过生成器一次返回指定大小的数据: ...
FileResponse 异步流式输出一个文件。 不同于其他response的初始化参数信息: path- 文件路径 headers- 定制头信息,字典格式 media_type- media type,如果没有设置则会根据文件名或文件路径来推断media type filename- 文件名。如果设置,会被包含到response的Content-Disposition中 ...
yield from vid_file # Path to stream video @app.get("/") def video_stream(): return StreamingResponse(stream_local_video(), media_type='video/mp4') 我们从fastapi.responses模块中导入了StreamingResponse类。 在video_stream()路径操作函数中,我们使用StreamingResponse返回了响应。我们将生成器函数stream...
return Response(content=image_bytes, media_type="image/png") 请参阅 Response 文档。 如果您的图像仅存在于文件系统中 返回fastapi.responses.FileResponse。 请参阅 FileResponse 文档。 小心StreamingResponse 其他答案建议 StreamingResponse。 StreamingResponse 更难正确使用,所以我不推荐它,除非你确定你不能使用...