FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 2탄 삭제, 수정
SQLAlchemy로 삭제하는 법과 수정하는 법
FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 1탄에 이어 이번에는 SQL 알케미로 삭제하는법과 수정하는 법을 정리해보 겠습니다.
삭제하기(DELETE)
삭제하기는 간단합니다. 특정 데이터를 가지고 오는 Select문을 작성한 객체를 만들어서
세션의 삭제하는 함수에 변수로 넣어 주면 됩니다.
def delete_users(db:Session,pk:int):
# db_user = db.query(User).filter(User.id==pk).first()
db_user = db.execute(select(User).filter(User.email=="user.email")).scalars().first()
if db_user:
db.delete(db_user)
db.commit()
return print("Delete!!")
else:
return print("Not Exist")
- db_user = db.query(User).filter(User.id==pk).first() 이 코드는 1.x버전 스타일이라고 하네요
- db_user = db.execute(select(User).filter(User.email=="user.email")).scalars().first() 위에 코드가 2.0 스타일 코드라고 하니 참조하시기 바랍니다.
- 이곳을 참조하여 2.0스타일로 작성하였습니다.
실제 삭제 하는 사용 코드
delete_users(db=db,pk=3)
db.close()
수정하기(Update)
업데이트도 삭제로 똑같습니다. 단지 delete에서 add로만 바뀐 차이만 있습니다.
class UpdateUser(UserCreate):
id: int
class Config:
orm_mode = True
def update_users(db:Session,user:UpdateUser):
db_user = db.query(User).filter(User.id==user.id).first()
if db_user:
db_user.email = user.email
db.add(db_user)
db.commit()
return db_user.email
else:
return print("Not Exist")
- 이전에 만든 파이단틱 클래스인 UserCreate 클래스를 상속받아 새로운 UpdateUser 클래스를 만들었습니다. 이렇게하면 UpdateUser 인스턴스도 email 변수를 가질수 있게 됩니다.
사용 하는 코드
data = {
"id": 9,
"email":"update1",
}
user = UpdateUser(**data)
update_users(db=db,user=user)
3탄은 여러가지 Select문에 대해 정리
다음은 여러가지 Select문에 대해 정리하는 포스팅을 하겠습니다. 사실 SQL을 공부하면서 가장 많이 사용하는 것이 SELECT 문인데요 여러가지 방법으로 SQL 알케미를 이용해서 SELECT문을 작성할수 있더군요 다음 포스팅을 끝으로 SQLALCHEMY 기초 시리즈는 마무리 하도록 하겠습니다.
2022.07.04 - FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 1탄
FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 1탄
다시 정리하는 SQL 알케미 본 내용은 https://fastapi.tiangolo.com/ko/tutorial/sql-databases/ 해당 링크의 설명과 공식문서를 참조하였습니다. 이전에 2021.08.16 - SQLALCHEMY를 이용한 PostgreSQL 사용법 을..
jh-industry.tistory.com
'프로그래밍사업 > 사이드 프로젝트' 카테고리의 다른 글
[SQLALchemy, python,MySQL] date, time, DateTime 자료형 입력하고 불러오기(타임존 적용까지) (0) | 2022.07.17 |
---|---|
FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 3탄 데이터 가져오기(Read, SELECT문) (0) | 2022.07.07 |
SQLAlchemy로 이미 있는 데이터베이스(기존 테이블) 사용하기 (0) | 2022.07.05 |
FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 1탄 초기설정, 데이터 입력하기 (0) | 2022.07.04 |
[SQL] Postgres에서 중복도 제거하고 다른 컬럼 기준으로 정렬하기(DISTINCT, ORDER BY, subquery (0) | 2021.11.06 |
댓글