tgadmin/webadmin/config.py
2024-07-25 15:19:15 +03:00

48 lines
1.2 KiB
Python

import os
import sys
from dotenv import load_dotenv
from pydantic_settings import BaseSettings
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
from contextlib import asynccontextmanager
from db.db import engine
from db.models import create_tables
import asyncio
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../')))
load_dotenv()
current_directory = os.path.abspath(os.path.dirname(__file__))
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup: создание таблиц
asyncio.create_task(create_tables())
yield # Контроль передается приложению
# Shutdown: закрытие соединений и очистка
await engine.dispose()
app = FastAPI(lifespan=lifespan)
app.mount("/static", StaticFiles(directory=current_directory + "/static"), name="static")
templates = Jinja2Templates(directory=current_directory + "/templates")
class Settings(BaseSettings): # создаем settings class
SESSION_EXPIRATION_TIME: int = int(os.getenv("SESSION_EXPIRATION_TIME", 3600))
settings = Settings()