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