考虑以下:
我正在使用 python 为我的家人制作一个明年的秘密圣诞老人脚本,虽然我已经知道如何绘制名字(见下面的代码),但我只需要执行一次。我打算使用烧瓶框架来创建一个页面倒计时直到抽奖的天数(我也想通了),但是我怎么做才能让它抽奖,只有一次,而不是每次有人登录到那个页面?明白我的意思吗?
无论如何,我会在这里向您展示我的代码:
# imports & initial Flask set up above
def do_matchup(names, draw, matches=None):
if matches is None:
matches = []
while names:
member = names.pop()
recipient = choice(draw)
if recipient != member:
matches.append("%s=%s" % (member, recipient))
draw.remove(recipient)
else:
names.append(member)
return matches
@app.route("/")
def index():
now = dt.datetime.now()
draw_date = dt.datetime.strptime('10/1/2013', '%m/%d/%Y')
days = draw_date - now
family = ["member1", "member2", "member3", "member4", "member5", "Me"]
hat_names = [name for name in family]
matchup = do_matchup(family, hat_names)
return render_template("base.html", now=now,
draw_date=draw_date,
days=days,
matchup=matchup)
该模板是一个基本的 html 页面,上面写着 {% if now < draw_date %} “距离抽奖还有 x 天”,{% else %} “显示抽奖结果”。
每次加载页面时,它都会进行新的绘制。我怎样才能让它只抽一次而不给每个家庭成员不同的结果?