from fastapi import FastAPI, Depends, Request from sqlalchemy.orm import Session import uvicorn from database import SessionLocal, engine import models import crud models.Base.metadata.create_all(bind=engine) app = FastAPI() # Dependency def get_db(): db = SessionLocal() try: yield db finally: db.close() @app.get("/") async def root(): return {"message": "Hello World"} @app.post("/movies/") async def create_movie( name: str = "", db: Session = Depends(get_db), request: Request = None ): out = {} data = await request.json() name = name or data["name"] movie = models.Movie() movie.name = name db.add(movie) db.flush() db.commit() db.refresh(movie) out = {"message": f"Created {movie.name} XX", "id": movie.id} return out @app.get("/movies/{id_}") async def get_movie(id_: str, db: Session = Depends(get_db)): movie = crud.get_movie_by_id(db, id_) out = {k: v for (k, v) in movie.__dict__.items() if not k.startswith("_")} return out if __name__ == "__main__": uvicorn.run(app, host="127.0.0.1", port=5000)