测量Flask中提交之间的时间

问题描述 投票:0回答:2

我想测量用户做出决定所需的时间(或者在这种情况下只需按“提交”按钮)。在python本身,我通常测量代码的时间

start_time = time.clock()
time_diff = start_time - time.clock()

但是,在Web应用程序中,我无法理解它应该如何工作。

@app.route('/survey')
def main():
    user = request.cookies.get('user')
if not user:
    return redirect(url_for('login'))
    msg = ''
    word = request.args.get('word')
    score = request.args.get('score')
start_time = time.clock()
if score:
    time_diff = start_time - time.clock()
    record_to_csv(user, word, score, time_diff)
return render_template(
    'main.html',
    self_url=url_for('main'),
    word=choice(words),
    msg=msg,
)

我的第一个想法是将start_time放在“if score”之前,然后测量之后的时间。但不知何故,我总是得到-4.10546782348e-07的同一时间。所以我想知道问题是我没有将时间测量放在循环中的正确位置,或者它是否是一个完全错误的方法。任何评论都非常感谢。

python flask time
2个回答
0
投票

您可以在会话中持有start_time,并在发布请求后进行检查:

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        time_diff = time.clock() - session.get('start_time', 0)
        print time_diff

    session['start_time'] = time.clock()
    return render_template('index.html')

否则,每次请求后都会失去这种可传播性。


0
投票

所以我把开始时间测量放在外面,然后在“if score”之后测量差异。像这样我得到累积时间,这就是为什么我总是减去上一步的时间。似乎工作。我还将time.clock()函数更改为time.time()。

start = time.time()
previous_difference = []
previous_difference.append(0)
@app.route('/survey')
def main():
    user = request.cookies.get('user')
if not user:
    return redirect(url_for('login'))
    msg = ''
    word = request.args.get('word')
    score = request.args.get('score')
start_time = time.clock()
if score:
    diff = end - start
    time_diff = diff - previous_difference[-1]
    previous_difference.append(diff)
    record_to_csv(user, word, score, time_diff)
return render_template(
    'main.html',
    self_url=url_for('main'),
    word=choice(words),
    msg=msg,

)

© www.soinside.com 2019 - 2024. All rights reserved.