正确刷新SQLAlchemy会话以查看外部更新的数据

时间:2016-10-15 05:10:40

标签: python mysql sqlalchemy

在尝试了所有建议here之后,我仍然无法让SQLAlchemy显示正确的结果!

我已经使用了Nick的答案,session.commit(),flush()和expire_all()的各种组合,重新启动了MySQL,甚至重新启动了整个怪胎服务器,我仍然得到了旧的结果SQLAlchemy的... ????为什么

关于整个问题的最令人愤怒的事情是,我可以从任何其他应用程序,甚至直接connection.execute()调用中看到更新的数据存在。我无法让它显示在网页上!

顺便说一下,这是一个金字塔应用程序,而不是Flask,但由于金字塔是99%的Flask,它不应该有所作为,对吧?

MTIA对此有任何帮助,它让我疯了!!

PS:我尝试将此添加为链接问题的答案,但由于不是有效答案而被删除。因此,为了将来参考,如果我只是想在现有问题上添加一些东西而不必发布一个全新的问题,那么我该怎么做呢?

编辑:我道歉zvone,这是我的代码:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
session = DBSession()
query = session.query(Item).join(Item.tagged)

filters = []
for term in searchTerms:
    subterms = term.split(' ')
    for subterm in subterms:
        filters.append(Item.itemTitle.like('%' + subterm + '%'))
        filters.append(Tag.tagName.like('%' + subterm + '%'))

query = query.filter(or_(*filters))
matchedItems = query.all()

为了让它更有意义,这里是上下文:

  1. 我正在建立一个基本的CMS,用户可以上传和下载任何类型的项目(文本文件,图像等)。
  2. 此页面的全部内容是允许用户搜索已使用某些表达式标记的项目。标签在搜索字段中作为逗号分隔的搜索短语串输入,例如, "电影,书籍,照片,带空格的搜索词"。此字符串将拆分为其对应项以创建searchTerms,这是输入该字段的所有术语的Python列表。
  3. 您可以在代码中看到我正在迭代searchTerms,将短语拆分为单独的字词,并为每个字词添加查询过滤器。
  4. 在搜索" big,theory"时会出现问题。我确信生产网站上有3个用户发布了大爆炸理论剧集,但在将这些数据库记录迁移到我的开发服务器之后,我只获得了一个搜索结果(旧数量)。
  5. 再次感谢您的帮助! :d

0 个答案:

没有答案