如何避免每次在烧瓶中获取数据



嗨,我有一个带有以下路线的 Python Flask 项目。

@app.route("/results")
def fetch_results():
today = date.today()
cursor = mysql.connection.cursor()
results = cursor.execute(f'select * from table where date >= {today} - INTERVAL 7 DAY
AND date < {today} ')
if results <= 0:
return None
data = cursor.fetchall()
return render_template("index.html", data = data)

我还有一个函数,可以在每个星期天发送带有索引内容的邮件.html 现在我希望索引.html显示接下来 7 天内在邮件中发送的结果,直到发送新邮件。每当调用"/results"时,它都不应该获取数据。如何在不使用全局变量的情况下执行此操作?

您可能正在寻找带有缓存的 redis(内存数据库(

Redis 使此函数的返回值保持活动状态,缓存将阻止在一段时间内刷新这些值(您可以将其设置为 1 周(

但是,您也可以通过确定"最近星期日"的日期在代码中执行此操作,并每次使用此日期而不是"今天">

因此,当用户在星期五(12 日(检查路由时,查询仍将检查上周日(7 日(的结果

这是一个关于获取一周中最近一天的相关问题 在 Python 中获取最后一个星期日和星期六的日期

我建议这样做而不是来自不同路由或复杂缓存的全局变量,因为这不是它的主要用例,如果缓存超过 7 天不刷新会导致不匹配(结果将开始漂移(

相关内容

  • 没有找到相关文章

最新更新