0
我試圖從我的用戶列表中刪除一個用戶,但是整個用戶自動刪除。用SqlAlchemy Flask從數據庫中刪除一行?
這裏是我的訂閱功能:
def subscribe(self, user_id):
if not self.is_subscriber(user_id):
db.engine.execute(
subscribers.insert(),
client_id = self.id,
user_id = user_id
)
db.session.commit()
else:
return False
的退訂功能:
def unsubscribe(self, user_id):
if self.is_subscriber(user_id):
db.engine.execute(
subscribers.delete(),
client_id = self.id,
user_id = user_id
)
db.session.commit()
else:
return False
通過,如果我想取消它應刪除特定的用戶,但在我的情況整個用戶被從表中刪除,爲什麼這樣,請問,有人可以幫助解決這裏的問題?
編輯:
如果我試圖從查詢中刪除CLIENT_ID,只是刪除USER_ID,我得到這個錯誤:
UnmappedInstanceError: Class '__builtin__.int' is not mapped
也db.session。刪除(user_id)命令!! 。如果您使用flask-sqlalchemy可以簡化很多這利用的SQLAlchemy的功率
def unsubscriber(self, user_id):
select_subscribers = subscribers.select(
db.and_(
subscribers.c.user_id == user_id,
subscribers.c.client_id == self.id
)
)
rs = db.engine.execute(select_subscribers)
return False if rs.rowcount == 0 else db.session.delete(user_id),
db.session.commit()
哦,是的,工作,引擎似乎更有效,如果你在你的應用程序中使用多個數據庫,謝謝:)。 – reznov11
我使用模型定義中的__bind_key__來管理多個數據庫,如下所示:[**多個帶綁定**的數據庫](http://flask-sqlalchemy.pocoo.org/2.1/binds/#binds) – abigperson