blocking-ip/main.py

40 lines
852 B
Python
Raw Permalink Normal View History

2024-08-10 14:52:46 +00:00
import logging
from contextlib import asynccontextmanager
2024-08-10 11:41:39 +00:00
2024-08-10 14:52:46 +00:00
import uvicorn
from fastapi import FastAPI
from fastapi.responses import ORJSONResponse
from starlette.staticfiles import StaticFiles
2024-08-10 11:41:39 +00:00
from core.config import STATIC_DIR, settings
from core.models.db_helper import db_helper
from api import router as swagger_router
2024-08-10 11:41:39 +00:00
2024-08-10 14:52:46 +00:00
log = logging.getLogger()
2024-08-10 11:41:39 +00:00
2024-08-10 14:52:46 +00:00
@asynccontextmanager
async def lifespan(app: FastAPI):
yield
await db_helper.dispose()
2024-08-10 11:41:39 +00:00
2024-08-10 14:52:46 +00:00
main_app = FastAPI(
default_response_class=ORJSONResponse,
lifespan=lifespan,
docs_url=None,
)
main_app.include_router(swagger_router)
2024-08-10 14:52:46 +00:00
main_app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static")
2024-08-10 14:52:46 +00:00
if __name__ == "__main__":
uvicorn.run(
"main:main_app",
host=settings.run.host,
port=settings.run.port,
reload=settings.run.reload,
)