2010-07-23 14 views
7

Bunun gibi bir model örneği aldığımı varsayalım:SQL Simyası - Bir model örneğinden nasıl silinir?

instance = session.query(MyModel).filter_by(id=1).first() 

Bu satırı nasıl silebilirim? Aramak için özel bir yöntem var mı?

+0

.get kullanmayı unutmayın (1) yerine filter_by ait (id = 1) .first(), 'id' birincil anahtar ise! Bu, daha az veritabanı isabeti ile sonuçlanır. Okumak: http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.get – MrOerni

cevap

18

Tamam ben daha arama yaptıktan sonra buldum:

session.delete(instance) 
+1

+1 Awesome, teşekkürler – Hubro

+0

Ben id tarafından silerseniz bu daha iyi olduğunu düşünüyorum: MyModel.query.filter (MyModel.id == 123) .delete() Daha doğrudan. Bkz. https://stackoverflow.com/questions/27158573/how-to-delete-a-record-by-id-in-flask-sqlalchemy –

0

Bunun için bir tek sorgu ateş edebilirsiniz. tüm kayıtlar

db.session.query(Table_name).delete() 
db.session.commit() 

için

burada db nesne Flask SQLAlchemy sınıftır. Tüm kayıtlarını siler ve belirli kayıtları silmek isterseniz, sorguda filter_by maddesini deneyin. ex. Belirli değer için

db.session.query(Table_name).filter_by(id==123).delete() 
db.session.commit() 
İlgili konular