在 FastAPI 中,你可以使用不同的响应类来处理各种类型的响应,包括 HTML、流、文件等。以下是一些示例:

1. 返回 HTML 页面:
from fastapi import FastAPI
from fastapi.responses import HTMLResponse

app = FastAPI()

@app.get("/html/", response_class=HTMLResponse)
async def read_html():
    content = "<html><body><h1>HTML Response</h1></body></html>"
    return HTMLResponse(content=content, status_code=200)

在这个例子中,我们使用 HTMLResponse 类来返回 HTML 页面。可以通过 response_class 参数指定响应类型,并在返回的时候提供 HTML 内容。

2. 返回流式响应:
from fastapi import FastAPI, StreamingResponse
import io

app = FastAPI()

@app.get("/stream/")
async def read_stream():
    content = b"some binary data"
    return StreamingResponse(io.BytesIO(content), media_type="application/octet-stream")

这个例子演示了如何返回流式响应。使用 StreamingResponse 类,你可以直接返回二进制数据,然后在浏览器中进行下载或其他处理。

3. 返回文件:
from fastapi import FastAPI
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/file/")
async def read_file():
    file_path = "path/to/your/file.txt"
    return FileResponse(file_path, filename="your_file.txt")

使用 FileResponse 类,你可以返回文件,浏览器会根据文件类型进行处理。

4. 返回重定向:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse

app = FastAPI()

@app.get("/redirect/")
async def read_redirect():
    return RedirectResponse(url="https://www.example.com", status_code=303)

使用 RedirectResponse 类,你可以实现重定向到其他 URL。

这些都是 FastAPI 中处理不同类型响应的一些示例。你可以根据实际需求选择适当的响应类。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7408/FastAPI