【问题标题】:Flask SQL Alchemy not updating database query inside routeFlask SQLAlchemy 不更新路由内的数据库查询
【发布时间】: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


【解决方案1】:

我找到了答案!尽管我在保存数据的另一个文件中调用了db.session.commit(),但是在读取路由内的数据之前我必须再次调用它。谢谢 PJ Santro!

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2023-04-03
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多