嗨,我有一个遵循以下路线的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)
我还有另一个功能,它在每个星期日发送包含index.html内容的邮件 现在,我希望index.html显示在接下来的7天中通过邮件发送的结果,直到发送新邮件为止。每当调用“ / results”时,都不应获取数据。如何不使用全局变量来做到这一点?
答案 0 :(得分:0)
您可能正在寻找具有缓存的Redis(内存数据库)
redis使此函数的返回值保持活动状态,并且缓存将阻止刷新这些值一段时间(您可以将其设置为1周)
但是,您也可以通过代码来确定“最近的星期日”的日期,并每次都使用该日期而不是“今天”。
因此,当用户在星期五(第12天)检查路线时,查询仍将检查上一个星期日(第7天)的结果
这是有关获取一周中最近一天的相关问题 get the last sunday and saturday's date in python
我建议您执行此操作,而不要使用来自其他路由或复杂缓存的全局变量,因为这不是它的主要用例,如果缓存刷新超过7天(结果将开始漂移),它将导致不匹配