[英]flask-sqlalchemy: data is not updated
我正在結合MySQL和Flask API運行SQLAlchemy。 我們使用模型來處理請求,並使用db.session.add()和db.session.commit()創建和更新更改。
我們還並行運行數據處理-一個無限的while循環,每次運行時都會查詢數據庫(Model.query.filter_by(...)。all())-但是,我們僅獲得在數據庫中而不是更新數據之前-數據本身已經在數據庫中。 如果我們重新啟動應用程序,則會找到新數據。
使用db = SQLAlchemy(app)創建數據庫,然后將其導入並在模型中使用
class Model(db.Model):
name = db.Column(db.String(255), index=True, unique=True)
active = db.Column(db.Boolean)
def create(self):
db.session.add(self)
db.session.commit()
def update(self):
db.session.commit()
def run_update():
while True:
models = Model.query.filter_by(active=True).all()
for model in models:
do_something(model)
time.sleep(300)
def do_something():
longtask = threading.Thread(target=long_task)
longtask.start()
def long_task():
// Update database here again
// Task has finished before it is run again.
time.sleep(10)
如果創建了新條目,則僅在重新啟動應用程序后才在模型查詢中捕獲結果。
我已經嘗試用db.session.query(Model)替換Model.query查詢,但是並沒有改變結果。
提前致謝,
我在while循環的末尾添加了一個db.session.close()-現在重新加載了數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.