我有以下代码:
@app.after_request
def sense_inactive(response):
if session.has_key('usercode'): ## if user has logged in
usercode = session['usercode']
inactive_rmt = info.find_one({'usercode': usercode})['inactive']
curr_time = time.time()
last_req = session['req_time']
## time_difference = datetime.combine(date.today(), curr_time) - datetime.combine(date.today(), last_req)
time_difference = curr_time - last_req
if time_difference > 60:
usercode = session['usercode']
insert = {'inactive': True}
info.update_one({'usercode': usercode}, {'$set': insert})
print 'user is inactive'
else:
usercode = session['usercode']
insert = {'inactive': False}
info.update_one({'usercode': usercode}, {'$set': insert})
else: ## if user hasn't logged in
return response
...我正在尝试用来确定用户是否在我的网络应用上“有效”。但是,运行此代码会使所有链接恢复到同一页面;我单击一个链接,app.after_request代码运行,但页面保持不变。
我的“回复”行是否导致问题?我已经阅读了一些(有点神秘)文档,app.after_request修饰函数需要参数才能运行。
答案 0 :(得分:2)
假设您的代码实际上是这样的:
if 'usercode' in session:
...
else: # if user hasn't logged in
return response
如果用户未登录,您只会返回响应。删除else
并始终返回响应,无论您是否执行其他操作。
if 'usercode' in session:
...
return response