53 lines
1.5 KiB
Python
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
|