from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware from fastapi.templating import Jinja2Templates from src.database import engine from src import models from src.routes.url import url_route from src.env import NAME, HOST DEFAULT_CONTEXT = { "name": NAME, "host": HOST } models.Base.metadata.create_all(bind=engine) app = FastAPI() templates = Jinja2Templates(directory="templates") origins = [ "*", ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.mount("/static", StaticFiles(directory="./static"), name="static") @app.get("/", response_class=HTMLResponse) def index(request: Request): return templates.TemplateResponse( request=request, name="index.html", context=DEFAULT_CONTEXT ) @app.get("/about", response_class=HTMLResponse) def about(request: Request): return templates.TemplateResponse( request=request, name="about.html", context=DEFAULT_CONTEXT ) app.include_router(url_route.routes)