首页 > 其他分享 >FastAPI 启动事件 tart_event(),停止事件shutdown_event()

FastAPI 启动事件 tart_event(),停止事件shutdown_event()

时间:2023-03-08 17:48:41浏览次数:31  
标签:__ FastAPI app init shutdown import event

作用

需要在应用程序启动之前或者关闭时进行,例如数据库迁移,定时任务·····

实际代码

main.py

import uvicorn

from app import create_app

app = create_app()

if __name__ == '__main__':
    uvicorn.run(
        app='main:app',
        host='0.0.0.0',
        port=8000,
        reload=True
    )
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @time    : 2023/2/3 11:28
# @author  : pugongying
# @description : 初始化项目

from fastapi import FastAPI

from app.xxx import task_init
from app.config import log_init
from app.middleware import middleware_init
from app.plan import plan
from app.routers import router_init


async def start_event():
    task_init()
    plan.run_plan()
    print('系统启动')


async def shutdown_event():
    print('系统关闭')


def create_app():
    app = FastAPI(title="xxx服务",
                  description="xxx服务接口文档",
                  version="1.0.0",
                  on_startup=[start_event],
                  on_shutdown=[shutdown_event]
                  )

    # 初始化日志
    log_init()

    # 初始化路由
    router_init(app)

    # 初始化中间件
    middleware_init(app)

    # 建表
    # db_init(app)

    return app

标签:__,FastAPI,app,init,shutdown,import,event
From: https://www.cnblogs.com/pgyLang/p/17195473.html

相关文章

  • MVVM - Commands, RelayCommands and EventToCommand
    MVVM-Commands,RelayCommandsandEventToCommand|MicrosoftLearnBy LaurentBugnion |May2013In previousinstallmentsofthisseries,Idescribedthei......
  • FastAPI - Get
    fromfastapiimportFastAPIimportuvicornapp=FastAPI()#默认接口文档http://127.0.0.1:8000/[email protected]("/")defindex():  '''这是首页'''  return"this......
  • FastAPI -Post
    fromfastapiimportFastAPIimportuvicornapp=FastAPI()#仅支持[email protected]("/login1")deflogin():  return{"msg:loginsuccess1"}#支持POST,GET,[email protected]......
  • FastAPI - Parameter
    fromfastapiimportFastAPIimportuvicornapp=FastAPI()#访问方式:http://127.0.0.1:8000/[email protected]("/user")defuser(id):       #id为接......
  • WPF MVVM框架------ Prism中的事件聚合器(IEventAggregator)
    在.net中,事件的订阅和发布使用比较简单,但具有依赖关系。Prism框架中提供的事件聚合器,可实现多点传送发布/订阅功能,可以用于ViewModel与ViewModel、ViewModel与View以及模......
  • DeviceMotionEvent API All In One
    DeviceMotionEventAPIAllInOne设备运动事件/设备动作事件https://caniuse.com/?search=DeviceMotionEventWarning:Currently,FirefoxandChromedonothan......
  • C# 事件(event)
    C#事件(event) 事件是一种特殊的多播委托,仅可以从声明事件的类或结构中对其进行调用。类或对象可以通过事件向其他类或对象通知发生的相关事情。发送(或引发)事......
  • 6.Node与浏览器EventLoop的差异
    任务队列个数不同浏览器事件环有2个事件队列宏任务队列微任务队列NodeJS事件环有6个事件队列定时器(timers):本阶段执行已经被setTimeout()和setInterval()的回......
  • 2.JavaScript如何实现异步编程,可以详细描述EventLoop机制
    单线程和异步js的任务分为同步和异步两种,它们的处理方式也不同,同步任务是直接在主线程上排队执行,异步任务则会被放在任务队列中,若有多个任务(异步任务)则要在任务队列中排......
  • G. Another Wine Tasting Event
    https://codeforces.com/contest/1776/problem/G题意:给定一个2*n-1序列问是否存在一个x使得有n个长度>=n的子串中含有'W'数量为x,且子串两两不同。n<=1e6题解:答案为长度......