【发布时间】:2017-06-18 03:10:25
【问题描述】:
我有一个从数据库中读取的路由,然后将传入路由的值与数据库中的最新值进行比较
@application.route("/complete", methods=['POST'])
def complete():
currentRound = request.json.get('round')
block = db.session.query(Block).order_by(Block.id.desc()).first()
if block.roundId == currentRound:
return jsonify( { "round": "valid" } )
else:
return jsonify( { "round": "false" } )
但是当新行添加到块表时,块值永远不会改变。例如,当我第一次运行应用程序时,如果添加到表中的最后一个块的 roundId 为“123”,则上述路由中的 block.roundId 将为“123”。但如果应用程序仍在运行并且数据库已更新,因此最新行的 id 为“456”,则路由仍会显示 block.roundId 为“123”。
在将新行添加到数据库并返回正确的值后,我已经仔细检查并使用了相同的查询,所以我认为问题出在路线内部。非常感谢任何帮助。
【问题讨论】:
-
db.session.commit() -
请修正您的代码。它有多个语法错误。你在用 MySQL 吗?
-
哪些错误llja?是的,使用 MySQL。添加新行时我确实运行了 db.session.commit(),但它仍然返回第一个值,它不读取新值
标签: python flask flask-sqlalchemy