Событие startup
Событие startup применяется к приложению
FastAPI и позволяет выполнить функцию один раз
при старте сервера. Это удобно для подключения
к базе данных, загрузки конфигурации или
инициализации кэша. Обработчик регистрируется
через декоратор on_event с параметром
'startup'. Функция может быть как
синхронной, так и асинхронной.
Синтаксис
@app.on_event('startup')
def startup_handler():
...
Пример
Давайте зарегистрируем обработчик события
startup, который выводит сообщение
в консоль при запуске приложения:
from fastapi import FastAPI
app = FastAPI()
@app.on_event('startup')
def on_startup():
print('app started')
@app.get('/')
def index():
return {'text': 'hello'}
При запуске сервера в консоль выведется строка:
"app started"
Пример
Давайте используем асинхронный обработчик
startup для подключения к базе данных
и сохраним соединение в атрибуте приложения:
import asyncio
from fastapi import FastAPI
app = FastAPI()
@app.on_event('startup')
async def connect_db():
await asyncio.sleep(0.1)
app.state.db = {'connected': True}
@app.get('/status')
def status():
return app.state.db
Результат выполнения кода для адреса /status:
{"connected": true}
Смотрите также
-
событие
shutdown,
которое выполняется при остановке приложения -
метод
on_event,
который регистрирует обработчики событий -
метод
add_event_handler,
который добавляет обработчик события программно -
параметр
lifespan,
который заменяет события startup и shutdown