【发布时间】:2016-08-09 15:06:32
【问题描述】:
我在 Apache 2.4 服务器上运行 Flask 应用程序。该应用程序向同事使用 Requests 库构建的 API 发送请求。请求采用特定格式,由存储在 MySQL 数据库中的数据构成。该站点旨在将 API 的反馈显示在索引上,用户可以通过另一个页面,即编辑页面来编辑存储在 MySQL 数据库中的数据(以及请求中发送的数据)。
例如,假设自定义字段 date 设置为 "2006",我将访问索引页面,发送请求,API 发挥作用并发回与 2006 年相关的数据。如果我然后将日期更改为"2007",然后将新字段保存在 MySQL 中,并在导航回索引时构造、发送新请求并返回 2007 年的数据。
很遗憾,这并没有发生。
当我在编辑页面上更改详细信息时,它们肯定会存储到数据库中,但是当我导航回索引时,请求会发送前一组数据。我认为 Apache 导致问题的原因有两个:
- 当我重置服务器 (
service apache2 restart) 时,发回的数据是“正确的”数据,即使我没有触及数据库。也就是说,索引最初是请求2006年的数据,我把它改成请求2007年的数据,它仍然请求2006年的数据,我重新启动服务器,刷新索引,只有然后它才像这样请求2007年的数据自从我编辑后就应该这样做了。 - 当我在我的本地 Flask 开发服务器上运行它时,在编辑条目后导航到索引页面会立即返回正确的结果 - 它提供相同的数据库并且与部署的服务器基本相同,只是它不是在 apache 上运行.
Apache 有没有办法缓存请求或其他东西?我无法弄清楚为什么服务器会一直发送旧请求,直到我重新启动它。
编辑: 请求本身又大又笨拙,并且响应会返回我不喜欢出于隐私原因提供示例的数据。
我几乎可以肯定 Apache 是问题所在,因为如前所述,Flask 开发服务器在返回正确的数据集方面没有问题。我还写了一些通过 Postman 运行的请求,这些请求也都按请求返回数据,所以请求结构一定没问题。我可以看到本地 Flask 应用程序和已部署应用程序之间的唯一区别是 Apache,并且鉴于重新启动 Apache 服务器会“更新”请求,直到数据再次更改,我认为它显然做了一些不愉快的事情。
【问题讨论】:
-
你确定是 Apache 吗?您如何在应用程序中加载数据?请edit 包含Minimal, Complete, and Verifiable example 的问题。
标签: apache flask python-requests