FastAPI 進階知識(六) 啟動-關閉事件


作者:麥克煎蛋   出處: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM