2016-07-27 70 views
-1

我有以下代码:瓶app.after_request()保持在同一页面上的用户

@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装饰函数需要参数才能正常工作。

+2

请修复您的缩进。 – davidism

回答

2

假设你的代码实际上是这样的:

if 'usercode' in session: 
    ... 
else: # if user hasn't logged in 
    return response 

如果用户没有登录,您才返回响应取下else,总是不管你做其他事或不返回响应。

if 'usercode' in session: 
    ... 

return response 
相关问题