FastAPI(55)- Events: startup - shutdown 啟動/關閉事件
阿新 • • 發佈:2021-10-04
背景
- 可以定義需要在應用程式啟動之前或應用程式關閉時執行的事件處理程式(函式)
- 這些函式可以用 async def 或普通 def
- 注意:只會執行主應用程式的事件處理程式,而不會執行子應用程式
實際程式碼
#!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠蘿測試筆記 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/10/4 7:26 下午 # file: 45_event.py """ import uvicorn from fastapi import FastAPI app= FastAPI() items = {} # 新增在應用程式啟動之前執行的函式 @app.on_event("startup") async def startup_event(): print("啟動應用程式啦") items["foo"] = {"name": "Fighters"} items["bar"] = {"name": "Tenders"} # 新增在應用程式關閉時執行的函式 @app.on_event("shutdown") async def shutdown_event(): print("關閉應用程式啦") with open("log.txt", mode="a") as log: log.write("Application shutdown") @app.get("/items/{item_id}") def read_items(item_id: str): return items[item_id] if __name__ == '__main__': uvicorn.run(app="45_event:app", reload=True, host="127.0.0.1", port=8080)
startup
- 模擬初始化資料庫,設定一些值到 items 中
- 可以擁有多個事件處理函式