Skip to content
Snippets Groups Projects
Select Git revision
  • 28bdfd4b66a1e6309fc4767be0b3f9e3d305945a
  • main default
2 results

main.py

Blame
  • user avatar
    Aymeric Chaumont authored
    fac96c61
    History
    main.py 1.02 KiB
    from fastapi import FastAPI
    from fastapi.middleware.cors import CORSMiddleware
    from dotenv import load_dotenv
    from threading import Thread
    from asyncio import run
    import os
    
    from db import database, models
    from routers import *
    from video_capture import handle_cameras
    
    app = FastAPI(docs_url="/api/docs", openapi_url="/api/openapi.json")
    
    # load environment variables
    load_dotenv()
    
    origins = [
        os.getenv('WEB_ROOT'),
    ]
    
    app.add_middleware(
        CORSMiddleware,
        allow_origins=origins,
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"]
    )
    
    
    @app.on_event("startup")
    async def on_startup():
        # Database creation
        models.Base.metadata.create_all(bind=database.engine)
        t = Thread(target=run, args=(handle_cameras(),))
        t.start()
    
    
    # Integration of routers
    app.include_router(infos.router)
    app.include_router(records.router)
    app.include_router(stats.router)
    app.include_router(news.router)
    app.include_router(comments.router)
    app.include_router(authentication.router)
    app.include_router(websocket.router)