반응형
플라스크-SQLAChemy 단일 테이블의 모든 행을 모두 삭제하는 방법
Flask-SQ를 사용하여 단일 테이블의 모든 행을 삭제하려면 어떻게 합니까?라케미?
다음과 같은 것을 찾는 중:
>>> users = models.User.query.all()
>>> models.db.session.delete(users)
# but it errs out: UnmappedInstanceError: Class '__builtin__.list' is not mapped
시도:
models.User.query.delete()
문서에서:Returns the number of rows deleted, excluding any cascades.
Daz Worrall의 대답은 정확합니다.다음은 코드가 OP와 다르게 구성된 경우 유용할 수 있는 변형입니다.
num_rows_deleted = db.session.query(Model).delete()
또한 다음 스니펫에서와 같이 커밋할 때까지 삭제가 적용되지 않습니다.
try:
num_rows_deleted = db.session.query(Model).delete()
db.session.commit()
except:
db.session.rollback()
플라스크-Sqalchemy
모든 레코드 삭제
#for all records
db.session.query(Model).delete()
db.session.commit()
삭제된 단일 행
여기서 DB는 객체 Flask-SQ입니다.LA 화학 수업.모든 레코드를 삭제하고 특정 레코드를 삭제하려면 시도합니다.filter
쿼리의 절. ex.
#for specific value
db.session.query(Model).filter(Model.id==123).delete()
db.session.commit()
개체별 단일 레코드 삭제
record_obj = db.session.query(Model).filter(Model.id==123).first()
db.session.delete(record_obj)
db.session.commit()
https://flask-sqlalchemy.palletsprojects.com/en/2.x/queries/ #http://-
원시 SQL 명령을 작성하는 것은 때때로 유용합니다.
def delete_table_content(self, table_name: str):
"deletes table contents"
CONNECTION = db_url
conn = psycopg2.connect(CONNECTION)
conn.autocommit = True
cursor = conn.cursor()
cursor.execute("TRUNCATE TABLE {}".format(table_name))
logger.warning("deleted table {} content".format(table_name))
여러 유형의 테이블이 있는 응용 프로그램이 있는 경우, 다음과 같이 삭제 단추의 URL에 ID와 TYPE을 전달합니다.
<a href="{{ url_for('app.cleartable',type='items') }}" class="btn btn-danger">
<i class="fas fa-trash fa-fw"></i>
Clear table
</a>
이제 당신이 요청하면.'/delete/<string:type>/<int:id>'
텍스트 문자열의 값을 사용하여 삭제하고 다음으로 리디렉션합니다.url
항목별로
@app.route('/delete/<string:type>/<int:id>', methods=['POST', 'GET'])
def delete(type, id):
if type == "item":
to_delete = Item.query.get(id)
try:
db.session.delete(to_delete)
db.session.commit()
flash(f'{to_delete.name} successfully deleted!', 'success')
except:
db.session.rollback()
flash(f'{to_delete.name} failed to delete!', 'error')
return redirect(url_for('items'))
언급URL : https://stackoverflow.com/questions/16573802/flask-sqlalchemy-how-to-delete-all-rows-in-a-single-table
반응형
'prosource' 카테고리의 다른 글
C 코드에서 //-style 주석을 사용할 수 없는 이유는 무엇입니까? (0) | 2023.08.16 |
---|---|
비주얼 스튜디오 코드에서 다른 프로젝트에 참조 추가 (0) | 2023.08.16 |
MySQL 명령줄의 루트 사용자에 대한 액세스가 거부되었습니다. (0) | 2023.08.16 |
MySQL Workbench에서 MariaDB Pph MyAdmin으로 데이터베이스 모델 내보내기 (0) | 2023.08.16 |
봄 재시도 가능한 주석 클래스를 찾을 수 없음 예외 (0) | 2023.08.16 |