推荐答案
在 FastAPI 中,FileResponse
用于返回文件作为响应。以下是一个简单的示例,展示如何使用 FileResponse
返回一个文件:
-- -------------------- ---- ------- ---- ------- ------ ------- ---- ----------------- ------ ------------ --- - --------- --------------------------- ----- --- ---------------- --------- - ----------------------- ------ ----------------------- -------------------------------
在这个示例中,FileResponse
会读取指定路径的文件,并将其作为响应返回。filename
参数是可选的,用于指定下载时的文件名。
本题详细解读
1. 导入 FileResponse
首先,你需要从 fastapi.responses
模块中导入 FileResponse
:
from fastapi.responses import FileResponse
2. 创建 FastAPI 应用
接下来,创建一个 FastAPI 应用实例:
app = FastAPI()
3. 定义路由和处理函数
定义一个路由和处理函数,使用 FileResponse
返回文件:
@app.get("/download-file/") async def download_file(): file_path = "path/to/your/file.txt" return FileResponse(file_path, filename="custom_filename.txt")
4. 参数说明
file_path
: 文件的路径,可以是绝对路径或相对路径。filename
: 可选参数,用于指定下载时的文件名。如果不提供,默认使用文件路径中的文件名。
5. 运行应用
最后,运行 FastAPI 应用:
if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)
访问 http://localhost:8000/download-file/
时,FastAPI 会返回指定路径的文件,并将其作为下载文件提供给客户端。