Wie füge ich eine Middleware hinzu, bevor die Anwendung in FastAPI startet?Python

Python-Programme
Anonymous
 Wie füge ich eine Middleware hinzu, bevor die Anwendung in FastAPI startet?

Post by Anonymous »

Mithilfe von Lifespan Events und Middleware möchte ich beim Anwendungsstart eine Middleware in einen Asynccontextmanager einfügen. Es sollte ungefähr so ​​aussehen:

Code: Select all

@asynccontextmanager
async def lifespan(app: FastAPI):
if some_condition:
@app.middleware("http")
async def my_middleware(request: Request, call_next):
response = await call_next(request)
return response
yield
pass

app = FastAPI(lifespan=lifespan)
Das obige Beispiel löst jedoch den folgenden Fehler aus:

Code: Select all

RuntimeError: Cannot add middleware after an application has started
Aber am Anfang der Lifespan Events-Dokumentation wird Folgendes erwähnt:

Sie können Logik (Code) definieren ), die bevor
die Anwendung startet
ausgeführt werden sollte. Dies bedeutet, dass dieser Code
einmal ausgeführt wird, bevor die Anwendung beginnt, Anfragen zu empfangen.

Wie soll ich nähern Sie sich dem?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post