44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
# import pathlib
|
|
from fastapi import FastAPI, Request
|
|
from fastapi.templating import Jinja2Templates
|
|
from fastapi.staticfiles import StaticFiles
|
|
from fastapi.responses import HTMLResponse
|
|
import uuid
|
|
|
|
from contextlib import asynccontextmanager
|
|
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:
|
|
response.set_cookie(key="sessionkey", value=str(uuid.uuid4()))
|
|
return response
|