在编辑记录时,如果等待几分钟(喝咖啡)然后再回来按下保存(POST),我会被重定向到主页面而不是登录而且数据是丢失。
烧瓶登录会话似乎过期了。
我做了一些研究并发现了这一点。
from flask import session, app
session.permanent = True
这是正确的方法吗?但即使我尝试这个,我也会遇到这个例外:
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
答案 0 :(得分:6)
以防其他人有这个问题。我想Hooman已经得到了答案。
赢得了工作
views.py
from flask import session
from datetime import 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
。
答案 1 :(得分:2)
如果您尝试访问此类会话对象,则无效。
正如错误消息所示,flask.session
只能在request context内使用,而{{3}}在此时不存在。您只应在路线中使用它。