Comment supprimer toutes les lignes d'une seule table à l'aide de Flask-SQLAlchemy?
Vous cherchez quelque chose comme ça:
>>> 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
la source
la source
models.User.query().delete()
Model.query.filter(Model.some_id == some_id, Model.other_id.in_(other_ids).delete()
Flask-SQLAlchemy
essayez enUser.query.delete()
tantquery
qu'objet car l' objet 'BaseQuery' n'est pas appelable. Testé et vérifié.La réponse de DazWorrall est parfaite. Voici une variante qui pourrait être utile si votre code est structuré différemment des OP:
N'oubliez pas non plus que la suppression ne prendra effet qu'après votre validation, comme dans cet extrait de code:
la source
Flacon-Sqlalchemy
Supprimer tous les enregistrements
Ligne unique supprimée
ici DB est la classe objet Flask-SQLAlchemy. Il supprimera tous les enregistrements de celui-ci et si vous souhaitez supprimer des enregistrements spécifiques, essayez la
filter
clause dans la requête. ex.Supprimer un seul enregistrement par objet
https://flask-sqlalchemy.palletsprojects.com/en/2.x/queries/#deleting-records
la source