반응형
Flask-SQ에서 ID별 레코드를 삭제하는 방법라헬미
있습니다users
MySql 데이터베이스의 테이블.이 테이블은id
,name
그리고age
들판
다음을 기준으로 일부 레코드를 삭제하는 방법id
?
이제 다음 코드를 사용한다.
user = User.query.get(id)
db.session.delete(user)
db.session.commit()
그러나 삭제 작업을 하기 전에 어떤 질의도 하고 싶지 않다.이거 어떻게 할 방법이 없을까?알아, 나는 사용할 수 있어.db.engine.execute("delete from users where id=...")
, 그러나 나는 사용하고 싶다.delete()
방법
당신은 이걸 할 수 있다.
User.query.filter_by(id=123).delete()
또는
User.query.filter(User.id == 123).delete()
꼭 하다commit
을 위해delete()
시행되다
다른 옵션을 공유하려는 경우:
# mark two objects to be deleted
session.delete(obj1)
session.delete(obj2)
# commit (or flush)
session.commit()
http://docs.sqlalchemy.org/en/latest/orm/session_basics.html#deleting
이 예에서 다음 코드는 정상 작동해야 한다.
obj = User.query.filter_by(id=123).one()
session.delete(obj)
session.commit()
특히 배치 삭제를 원할 경우 가능한 다른 솔루션
deleted_objects = User.__table__.delete().where(User.id.in_([1, 2, 3]))
session.execute(deleted_objects)
session.commit()
sqlalchemy 1.4(2.0 스타일)에서는 다음과 같이 할 수 있다.
from sqlalchemy import select, update, delete, values
sql1 = delete(User).where(User.id.in_([1, 2, 3]))
sql2 = delete(User).where(User.id == 1)
db.session.execute(sql1)
db.session.commit()
또는
u = db.session.get(User, 1)
db.session.delete(u)
db.session.commit()
내 생각에는 select, update, delete를 사용하는 것이 더 읽기 쉽다.스타일 비교 1.0 대 2.0은 여기에서 확인할 수 있다.
참조URL: https://stackoverflow.com/questions/27158573/how-to-delete-a-record-by-id-in-flask-sqlalchemy
반응형
'programing' 카테고리의 다른 글
Vuetify 탭을 Vue-Router와 함께 사용하는 방법 (0) | 2022.04.01 |
---|---|
방법 대 Vue에서 계산된 방법 (0) | 2022.04.01 |
내 Redex 앱에서 상태를 올바르게 반환하려면 어떻게 해야 하는가? (0) | 2022.04.01 |
파이톤 대본에 #!(쉐뱅)을 넣어야 하나, 어떤 형식을 취해야 하나? (0) | 2022.04.01 |
vue 및 vuex 상태를 초기화할 시기 (0) | 2022.04.01 |