formaptix-server/main.py
2024-09-22 08:37:36 +00:00

35 lines
845 B
Python

import logging
from contextlib import asynccontextmanager
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import models
import database
import routes
logging.basicConfig(level=logging.INFO)
@asynccontextmanager
async def lifespan(app: FastAPI):
logging.info("Creating tables in database")
async with database.engine.begin() as connection:
await connection.run_sync(database.Base.metadata.create_all)
yield
app = FastAPI(lifespan=lifespan)
app.include_router(routes.router)
if models.settings.all_cors_origins:
app.add_middleware(
CORSMiddleware,
allow_origins=models.settings.all_cors_origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
uvicorn.run(app, host="0.0.0.0", port=models.settings.PORT)