FastAPI stellt die StreamingResponse-Klasse bereit, um Daten während API-Aufrufen an Clients zu streamen. Während diese Funktionalität für das nicht blockierende Streaming von Daten gedacht ist, können Probleme auftreten, wenn eine Generatorfunktion mit blockierenden Vorgängen oder unsachgemäßer Verwendung verwendet wird.
Um den Erfolg sicherzustellen Beachten Sie beim Streamen Folgendes:
Betrachten Sie den folgenden Python-Code:
# app.py from fastapi import FastAPI, StreamingResponse from fastapi.responses import StreamingResponse import asyncio app = FastAPI() async def fake_data_streamer(): for i in range(10): yield b'some fake data\n\n' await asyncio.sleep(0.5) @app.get('/') async def main(): return StreamingResponse(fake_data_streamer(), media_type='text/event-stream') # or, use: ''' headers = {'X-Content-Type-Options': 'nosniff'} return StreamingResponse(fake_data_streamer(), headers=headers, media_type='text/plain') ''' # test.py (using httpx) import httpx url = 'http://127.0.0.1:8000/' with httpx.stream('GET', url) as r: for chunk in r.iter_raw(): # or, for line in r.iter_lines(): print(chunk)
Dieser Code zeigt, wie man Daten von einer Generatorfunktion in einer FastAPI-Anwendung streamt und sie mithilfe der httpx-Bibliothek nutzt.
Das obige ist der detaillierte Inhalt vonWie kann man Streaming-Antworten in FastAPI effektiv verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!