lerafoxqueen/LeraFoxQueen/main.py

53 lines
1.5 KiB
Python

# 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