gpt4 book ai didi

python - Peewee 的 Flask 仅在重新启动时获取新数据

转载 作者:行者123 更新时间:2023-11-29 17:00:37 26 4
gpt4 key购买 nike

我的 Flask + Peewee 应用程序遇到了一个非常奇怪的问题。

我有一个将数据插入 MySQL 数据库的网络应用程序。

我的 Flask 应用程序还通过 peewee 连接到该数据库。

问题是,当我使用 web 应用程序插入某些内容时,如果我在 Flask 应用程序中对数据库进行选择,它将返回 Flask 应用程序启动时可用的数据。获取新数据使用相同的选择,我需要重新启动 Flask 服务器服务才能获取新数据。

有谁知道发生了什么吗?

更新

我发现了这个问题。它与 peewee 没有直接关系,而是与 Flask 相关。

我有这样的东西:

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

似乎当我这样做时,date_from 是用编译的日期时间设置的。之后,所有使用它的请求都将始终使用该日期时间。

改为:

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

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

它开始工作。

我正在与像我一样可能遇到同样问题的其他人分享此内容。

最佳答案

这是 Web 应用程序的预期行为。 HTTP 是一种无状态协议(protocol),这意味着您的 Web 应用程序的前端无法知道后端的状态是否已更改,除非它发出新的请求。因此,只有重新启动 Flask 应用程序后,您的后端更改才可见。根据您的代码,您可能还可以通过刷新浏览器看到更改。

如果您想立即看到更改而不需要重新启动/刷新,请了解如何使用 Javascript 查询更改并更新前端 DOM。您可以从学习 jquery 或 React/Vue/Angular 等现代框架开始。

关于python - Peewee 的 Flask 仅在重新启动时获取新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52285458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com