Flask:登录会话太快 [英] Flask: login session times out too soon

查看:195
本文介绍了Flask:登录会话太快的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在编辑记录时,如果等了很长时间(比如说咖啡),然后回来按下保存(POST),我会被重定向到主页面来登录,而数据是丢失。



似乎烧瓶登录会话过期太快。



我做了一些研究,发现

 来自flask导入会话,app 

session.permanent = True

这是正确的方法吗?但是,即使当我尝试这个,我得到这个例外︰

$ $ p $ 文件/用户/卡夫/工作区/ F11A / src /应用程序/ __init__.py,第14行,在< module>
session.permanent = True
文件/Users/kave/workspace/F11A/src/lib/werkzeug/local.py,第355行,在< lambda>
__setattr__ = lambda x,n,v:setattr(x._get_current_object(),n,v)
文件/Users/kave/workspace/F11A/src/lib/werkzeug/local.py第297行在_get_current_object
中返回self .__ local()
文件/Users/kave/workspace/F11A/src/lib/flask/globals.py,第20行,位于_lookup_req_object
提高RuntimeError('在请求上下文之外工作)
RuntimeError:在请求上下文之外工作


以防万一别人会有这个问题。我想Hooman已经有了答案。

没有工作

的观点。 py

 从flask导入会话
从datetime导入timedelta

session.permanent = True
app.permanent_session_lifetime = timedelta(minutes = 30)



  from flask import session 
from datetime import timedelta

@ app.route ('/ home',methods = ['GET','POST'])
def show_work():
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes = 30)
form = MyForm(request.form)
return render_template('home.html',form = form)

session 必须在请求内部使用。


While editing a record, if there is a long wait of let say a few minutes (getting coffee) and then coming back to press the save (POST), I get redirected to the main page to login instead and the data is lost.

It seems the flask-login session expires too fast.

I did some research and came across this.

from flask import session, app

session.permanent = True

Is this the proper way to go? But even when I try this I get this exception:

  File "/Users/kave/workspace/F11A/src/application/__init__.py", line 14, in <module>
    session.permanent = True
  File "/Users/kave/workspace/F11A/src/lib/werkzeug/local.py", line 355, in <lambda>
    __setattr__ = lambda x, n, v: setattr(x._get_current_object(), n, v)
  File "/Users/kave/workspace/F11A/src/lib/werkzeug/local.py", line 297, in _get_current_object
    return self.__local()
  File "/Users/kave/workspace/F11A/src/lib/flask/globals.py", line 20, in _lookup_req_object
    raise RuntimeError('working outside of request context')
RuntimeError: working outside of request context

解决方案

Just in case someone else will have this question. I suppose Hooman already got answer.

Won`t work

views.py

from flask import session
from datetime import timedelta

session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=30) 

Will work

from flask import session
from datetime import timedelta

@app.route('/home', methods=['GET', 'POST'])
def show_work():
    session.permanent = True
    app.permanent_session_lifetime = timedelta(minutes=30)
    form = MyForm(request.form)
    return render_template('home.html', form = form)

session must be used inside the request.

这篇关于Flask:登录会话太快的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆