2010-07-23 21 views
7

Giả sử tôi nhận được một kiểu mẫu như sau:Thuật giả kim thuật SQL - Cách xóa khỏi phiên bản mẫu?

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

Làm cách nào để xóa hàng đó? Có một phương pháp đặc biệt để gọi?

+0

Hãy nhớ sử dụng .get (1) thay vì filter_by (id = 1) .first(), nếu 'id' là chìa khóa chính! Điều này dẫn đến ít lần truy cập cơ sở dữ liệu hơn. Đọc: http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.get – MrOerni

Trả lời

18

Ok tôi thấy nó sau khi tìm kiếm thêm:

session.delete(instance) 
+1

+1 Tuyệt vời, cảm ơn – Hubro

+0

Tôi nghĩ rằng điều này sẽ tốt hơn nếu bạn xóa theo id: MyModel.query.filter (MyModel.id == 123) .delete() Trực tiếp hơn. Xem https://stackoverflow.com/questions/27158573/how-to-delete-a-record-by-id-in-flask-sqlalchemy –

0

Bạn có thể bắn một truy vấn đơn cho việc này.

cho tất cả hồ sơ

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

đây db là đối tượng Flask SQLAlchemy lớp. Nó sẽ xóa tất cả các hồ sơ khỏi nó và nếu bạn muốn xóa các bản ghi cụ thể, sau đó thử khoản tiền filter_by trong truy vấn. ví dụ

cho giá trị cụ thể

db.session.query(Table_name).filter_by(id==123).delete() 
db.session.commit() 
Các vấn đề liên quan