Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正确刷新SQLAlchemy会话以查看外部更新的数据_Python_Mysql_Sqlalchemy - Fatal编程技术网

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

Python 正确刷新SQLAlchemy会话以查看外部更新的数据,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,在尝试了所有建议之后,我仍然无法让SQLAlchemy显示正确的结果 我使用了Nick的答案、session.commit()、flush()和expire_all()的各种组合,重新启动了MySQL,甚至重新启动了整个该死的服务器,我仍然从SQLAlchemy获得了旧的结果…为什么 整个问题中最令人恼火的是,我可以从任何其他应用程序,甚至从直接连接.execute()调用中看到更新的数据就在那里。我就是不能让它显示在网页上 顺便说一句,这是一个金字塔应用程序,不是烧瓶,但由于金字塔是99%烧瓶

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

我使用了Nick的答案、session.commit()、flush()和expire_all()的各种组合,重新启动了MySQL,甚至重新启动了整个该死的服务器,我仍然从SQLAlchemy获得了旧的结果…为什么

整个问题中最令人恼火的是,我可以从任何其他应用程序,甚至从直接连接.execute()调用中看到更新的数据就在那里。我就是不能让它显示在网页上


顺便说一句,这是一个金字塔应用程序,不是烧瓶,但由于金字塔是99%烧瓶,它应该不会有什么区别,对吗

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()
为了让它更有意义,这里是上下文:

  • 我正在建立一个基本的CMS,用户可以上传和下载任何类型的项目(文本文件、图像等)
  • 这个页面的整体思想是允许用户搜索带有特定表达式标记的项目。标记以逗号分隔的搜索短语字符串形式输入搜索字段,例如“电影、书籍、照片、带空格的搜索词”。将此字符串拆分为对应的字符串,以创建
    searchTerms
    ,这是一个Python列表,其中包含输入字段的所有术语
  • 您可以在代码中看到,我正在迭代
    searchTerms
    ,将短语拆分为单独的单词,并为每个单词添加查询过滤器
  • 当寻找“大,理论”时,问题就出现了。我知道制作网站上有3个用户发布了《生活大爆炸》剧集,但在将这些DB记录迁移到我的开发服务器后,我只得到一个搜索结果(旧数量)

  • 再次感谢您的帮助!:D

    是的,要添加与现有问题相关的内容,请编写一个新问题。这是正确的做法。但问题中缺少一件事:您的代码。为了了解是什么原因导致您的案例出现问题,我们必须查看您的代码。把所有的irrlevant都拿走。只保留打开会话、从数据库读取数据以及打印错误值的部分。确认这样减少的代码仍然会复制错误,然后将其粘贴到这里。“但由于金字塔是99%的烧瓶,所以不会有什么区别,对吧?”这几乎是100%的错误。它们是完全不同的框架。@ilja我很抱歉,我以为金字塔是基于Flask的,但我猜我错了。很可能你在事务隔离和事务未关闭方面遇到了问题,而你认为它们是。是的,要添加与现有问题相关的内容,请写一个新问题。这是正确的做法。但问题中缺少一件事:您的代码。为了了解是什么原因导致您的案例出现问题,我们必须查看您的代码。把所有的irrlevant都拿走。只保留打开会话、从数据库读取数据以及打印错误值的部分。确认这样减少的代码仍然会复制错误,然后将其粘贴到这里。“但由于金字塔是99%的烧瓶,所以不会有什么区别,对吧?”这几乎是100%的错误。它们是完全不同的框架。@ilja我很抱歉,我以为金字塔是基于Flask的,但我想我错了。很可能您在事务隔离和事务未关闭方面遇到了问题,而您认为是这样。