作者:麥克煎蛋 出處:https://www.cnblogs.com/mazhiyong/ 轉載請保留這段聲明,謝謝!
我們可以在應用啟動和關閉的時候自定義事件處理器。注意,只有主應用才可以這么做。
啟動事件
通過"startup
"事件來聲明一個應當在應用啟動之前運行的函數。
from fastapi import FastAPI app = FastAPI() items = {} @app.on_event("startup") async def startup_event(): items["foo"] = {"name": "Fighters"} items["bar"] = {"name": "Tenders"} @app.get("/items/{item_id}") async def read_items(item_id: str): return items[item_id]
我們可以添加更多的事件處理函數。
只有在處理完成所有的startup事件函數之后,應用才會開始接收請求。
關閉事件
通過"shutdown
"事件來聲明一個在應用退出之時運行的函數。
from fastapi import FastAPI app = FastAPI() @app.on_event("shutdown") def shutdown_event(): with open("log.txt", mode="a") as log: log.write("Application shutdown") @app.get("/items/") async def read_items(): return [{"name": "Foo"}]
更多事件處理器可以參考:Starlette's Events' docs