flask,peewee只在重启时获取新数据

3wabscal  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(408)

我的flask+peewee应用程序遇到了一个非常奇怪的问题。
我有一个webapp,可以将数据插入mysql数据库。
我的flask应用程序也通过peewee连接到那个数据库。
问题是,当我用webapp插入一些东西时,如果我对flask app中的数据库进行选择,它将返回flask app开始时可用的数据。要使用相同的select获取新数据,我需要重新启动flask服务器服务以获取新数据。
有人知道发生了什么吗?
更新
我发现了问题。它与皮维没有直接关系,但与 flask 有关。
我有这样的想法:

def some_method(id, user_id, date_from = datetime.now(), limit = 50):

当我这样做的时候,日期从被设置为编译的日期时间。之后,所有使用它的请求总是使用该日期和时间。
更改为:

def some_method(id, user_id, date_from = None, limit = 50):

   if (date_from is None):
     date_from = datetime.now()

它开始工作了。
我把这个分享给其他像我这样可能有同样问题的人。

aoyhnmkz

aoyhnmkz1#

这是web应用程序的预期行为。http是一种无状态协议,这意味着您的Web应用程序的前端无法知道后端的状态是否已更改,除非它发出新的请求。因此,只有在重新启动flask应用程序后,您的后端更改才可见。根据您的代码,您可能还可以通过刷新浏览器来查看更改。
如果您想在不重新启动/刷新的情况下立即看到更改,请学习如何使用javascript查询更改并更新前端dom。您可以从学习jquery或react/vue/angular这样的现代框架开始。

相关问题