Привет! С удовольствием расскажу тебе, как запустить этот код только в начале работы приложения, если таблицы в базе данных отсутствуют.Первым шагом нам понадобится импортировать необходимые модули и создать экземпляр класса `SQLAlchemy` для работы с базой данных. Предположим, что мы уже импортировали модуль `fastapi` и создали объект `app` с помощью `FastAPI`.python
from sqlalchemy import create_engine, MetaData
from fastapi import FastAPI
app FastAPI
Далее, создадим функцию `create_tables`, которая будет выполняться только в случае, если таблицы в базе данных не существуют. Код этой функции у тебя уже есть. Добавим его в нашу программу⁚
python
async def create_tables⁚
async with engine.begin as conn⁚
await conn.run_sync(Model.metadata.create_all)
Теперь, чтобы этот код запускался только в начале работы приложения, нам потребуется использовать метод `app.on_event(″startup″)`. В этом методе мы можем указать все действия, которые должны быть выполнены при запуске приложения. В нашем случае, мы будем вызывать функцию `create_tables`.python
@app.on_event(″startup″)
async def startup⁚
await create_tables
Теперь всё готово! Когда ты запуститишь свое приложение, функция `create_tables` будет вызвана только один раз при старте. Она проверит, есть ли таблицы в базе данных, и если их нет, создаст их.Вот полный пример кода⁚
python
from sqlalchemy import create_engine, MetaData
from fastapi import FastAPI
app FastAPI
engine create_engine(″sqlite:///mydatabase.db»)
metadata MetaData
async def create_tables⁚
async with engine.begin as conn⁚
await conn.run_sync(metadata.create_all)
@app.on_event(″startup″)
async def startup⁚
await create_tables
Учти, что в этом примере я использовал базу данных SQLite. Конечно, ты можешь заменить `create_engine` на другой код, чтобы подключиться к другой базе данных.
Надеюсь, эта инструкция была полезной! Если у тебя возникнут еще вопросы, не стесняйся задавать. Желаю тебе удачи со своим проектом на FastAPI!