当前位置:   article > 正文

FastAPI Web框架教程 第15章 补充_fastapi 注册中间件的几种写法

fastapi 注册中间件的几种写法

15-1 事件钩子

在FastAPI中,可以定义一些事件处理器,比如在服务启动时执行,或者在服务关闭时自动执行。

示例1:服务启动时的事件 startup

  • 使用 app.on_event(“startup”) 装饰器注册服务启动事件,可以注册多个服务启动事件
  • 服务启动后,等所有被注册的 startup事件都执行完成后,才开始接收请求
  • 应用场景:初始化db,初始化外部API连接等等
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]

# 这些事件处理器,可以可以是通过 async def定义的协程函数,也可以是通过 def定义的普通函数。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

示例2:服务关闭事件 shutdown

  • 使用 app.on_event(“shutdown”) 装饰器注册服务关闭事件,也可以注册多个
from fastapi import FastAPI

app = FastAPI()


@app.on_event("shutdown")
def shutdown_event():
    print(
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/912053
推荐阅读
相关标签
  

闽ICP备14008679号