tgadmin/webadmin/config.py

48 lines
1.2 KiB
Python
Raw Permalink Normal View History

2024-07-25 12:19:15 +00:00
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()