我想测量用户做出决定所需的时间(或者只是按下"提交"按钮)。在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放在"如果得分"然后测量之后的时间。但不知何故,我总是得到-4.10546782348e-07的同一时间。所以我想知道问题是我没有将时间测量放在循环中的正确位置,或者它是否是一个完全错误的方法。任何评论都非常感谢。
答案 0 :(得分: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')
否则每次请求后都会丢失这个可传播的内容。
答案 1 :(得分:0)
所以我把开始时间测量放在外面,然后在“if score”之后测量差异。像这样我得到累积时间,这就是为什么我总是减去上一步的时间。似乎工作。我还将time.clock()函数更改为time.time()。
db.run "CREATE DATABASE my_new_db"
)