Como faço para excluir todas as linhas em uma única tabela usando Flask-SQLAlchemy?
Procurando por algo assim:
>>> users = models.User.query.all()
>>> models.db.session.delete(users)
# but it errs out: UnmappedInstanceError: Class '__builtin__.list' is not mapped
python
sqlalchemy
flask-sqlalchemy
SeanPlusPlus
fonte
fonte
models.User.query().delete()
Model.query.filter(Model.some_id == some_id, Model.other_id.in_(other_ids).delete()
Flask-SQLAlchemy
, tenteUser.query.delete()
comoquery
objeto, pois o objeto 'BaseQuery' não pode ser chamado. Testado e verificado.A resposta de DazWorrall está certa. Aqui está uma variação que pode ser útil se o seu código for estruturado de maneira diferente do OP:
Além disso, não se esqueça de que a exclusão não terá efeito até que você confirme, como neste snippet:
fonte
Flask-Sqlalchemy
Excluir todos os registros
Linha Única Excluída
aqui DB é o objeto da classe Flask-SQLAlchemy. Ele excluirá todos os registros dele e se você quiser excluir registros específicos, tente a
filter
cláusula na consulta. ex.Excluir registro único por objeto
https://flask-sqlalchemy.palletsprojects.com/en/2.x/queries/#deleting-records
fonte