Advertisement
mrmamongo

app.py

Jun 8th, 2023
737
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. # uvicorn src.main:app --host 0.0.0.0 --port 8000  --reload
  2. import logging
  3. from contextlib import asynccontextmanager
  4.  
  5. from fastapi import FastAPI
  6.  
  7. from src.core.config import config
  8. from src.db.session import sessionmanager
  9. from src.routers import bot_router, channel_router, messages_router, task_router
  10.  
  11. logger = logging.getLogger(__name__)
  12.  
  13.  
  14. def get_app(init_db: bool = True):
  15.     lifespan = None
  16.  
  17.     if init_db:
  18.         sessionmanager.init(config.db_url("postgres+asyncpg"))
  19.  
  20.         @asynccontextmanager
  21.         async def lifespan(app: FastAPI):
  22.             yield
  23.             if sessionmanager._engine is not None:
  24.                 await sessionmanager.close()
  25.  
  26.     app = FastAPI(title="botsAPI", lifespan=lifespan)
  27.  
  28.     @app.on_event("startup")
  29.     async def startup():
  30.         logging.basicConfig(level=logging.INFO)
  31.  
  32.     app.include_router(bot_router)
  33.     # ...other routers
  34.     return app
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement