45 lines
812 B
Python
45 lines
812 B
Python
from fastapi import FastAPI, Depends
|
|
|
|
from sqlalchemy.orm import Session
|
|
import uvicorn
|
|
from database import SessionLocal, engine
|
|
import models
|
|
|
|
|
|
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)):
|
|
out = {}
|
|
assert name
|
|
movie = models.Movie()
|
|
movie.name = name
|
|
db.add(movie)
|
|
db.flush()
|
|
db.commit()
|
|
db.refresh(movie)
|
|
breakpoint()
|
|
out = {"message": f"Created {movie.name} XX", "id": movie.id}
|
|
return out
|
|
|
|
|
|
if __name__ == "__main__":
|
|
uvicorn.run(app, host="127.0.0.1", port=5000)
|