【问题标题】:why flask sqlalchemy model query does not get newest records?为什么烧瓶 sqlalchemy 模型查询没有获得最新记录?
【发布时间】:2022-02-24 04:16:22
【问题描述】:

我有一个模型类:

class PlatformUsage(db.Model):
    __tablename__ = 'platform_usage'

    id = db.Column(db.BigInteger, primary_key=True)
    module = db.Column(db.String(64))
    rb = db.Column(db.BigInteger)
    status = db.Column(db.String(64))
    platform = db.Column(db.String(64))

    def __init__(self, module, rb, status, platform):
        self.module = module
        self.rb = rb
        self.status = status
        self.platform = platform

    def __repr__(self):
       return "<PlatformUsage(module: %s, rb: %d, status: %s, platform: %s>" % (
           self.module, self.rb, self.status, self.platform)

当我这样查询时:

while True:
  PlatformUsage.query.filter_by(module='xxx')

我在外部更改数据库,我无法获得最新结果!为什么?

session.query(PlatformUsage).filter_by(xxxx) 

会得到正确的结果!

【问题讨论】:

标签: flask sqlalchemy flask-sqlalchemy


【解决方案1】:

Mikko Ohtamaa 链接的问题不会立即回答您的问题,但包含您需要了解的内容。

第一次执行查询后,您就处于事务中。在事务中,大多数 DBMS 保证您可重复读取(或为您提供该选项)。 IE。每次您在事务中运行查询时您都会得到相同的答案。这就是您执行第一个代码时发生的情况。

在第二个中,您可能在浏览器上按 F5 并获得一笔新交易。这将为您提供最新数据。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2015-12-14
相关资源
最近更新 更多