CRUD for Database (1)

박준환·2021년 11월 16일
0

fast-API

목록 보기
5/8

Create

@app.post('/product',status_code=status.HTTP_201_CREATED) #post를 정상적으로 했을 때 상태코드로 201을 띄움
def add(request:schemas.Product,db:Session =Depends(get_db)):
    new_product=models.Product(name=request.name,description=request.description,price=request.price)
    db.add(new_product)
    db.commit()
    db.refresh(new_product)
    return request

과정

1.schemas에 있는 Product 모델을 request하고 데이터베이스를 세션에 연결을 한다.

2. new_product라는 Product모델의 객체를 만드는데 이때 Product 객체의 이름, 자세한 설명, 가격을 입력을 한다.

3. 기존에 만들었던 데이터베이스 테이블에 이 new_product를 add하고 refresh하여 정상적으로 product를 추가했으면 http 상태코드로 201을 출력한다.

Read

@app.get('/product/{id}')
def product(id,response: Response,db:Session =Depends(get_db)):
    products = db.query(models.Product).filter(models.Product.id==id).first()
    if not products:
       raise HTTPException(status_code=status.HTTP_404_NOT_FOUND,detail='Product not found') # HTTP 에러 핸들링
    return products

과정

1. 데이터베이스를 세션에 연결한다.

2. path 매개변수인 id를 받아 해당 id를 갖는 product가 데이터 베이스에 있는지 확인한다.

3-1. product가 없다면 http 상태코드로 404를 출력하고 Product not found라는 문구를 출력하여 에러를 제어한다.

3-2 product가 있다면 해당 product 객체를 read한다.

0개의 댓글

관련 채용 정보