# import pathlib import datetime import uuid from contextlib import asynccontextmanager from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from .database import create_tables, delete_tables from .router import router as datings_router from .validity import is_valid_uuid @asynccontextmanager async def lifespan(app: FastAPI): await create_tables() print("База готова") yield # await delete_tables() # print("База очищена") pass # app = FastAPI(lifespan=lifespan) app = FastAPI(lifespan=lifespan, docs_url=None, redoc_url=None, openapi_url=None) templates = Jinja2Templates(directory="templates") app.include_router(datings_router) app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/", response_class=HTMLResponse) async def index(request: Request): response = templates.TemplateResponse("index.html", {"request": request}) sessionKey = request.cookies.get("sessionkey") if isinstance(sessionKey, str) and is_valid_uuid(sessionKey): pass else: days = 365 expires_t_obj = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta( days=days ) expires_t_str = expires_t_obj.strftime("%a, %d %b %Y %H:%M:%S GMT") response.set_cookie( key="sessionkey", value=str(uuid.uuid4()), expires=expires_t_str ) return response