python - 如何在 Flask 中初始化 session ?

标签 python flask web-applications

在任何传入连接时,无论何时连接新计算机或浏览器并创建新 session cookie,我都想初始化几个 session 变量。如果我这样做:

session["authorized"] = False
session["client_id"] = None
session["client_secret"] = None
session["go_id"] = None
session["test_mode"] = None

在函数装饰器之外,我得到了这个错误:

RuntimeError: Working outside of request context.
This typically means that you attempted to use functionality that needed an active HTTP request. Consult the documentation on testing for information about how to avoid this problem.

如果我使用 app.before_first_request 装饰器,它只会为第一个连接/ session 运行一次初始化,但如果我连接到另一个浏览器,则不会进行初始化。看起来像这样:

@instance.before_first_request
def initialize():
    session["authorized"] = False
    session["client_id"] = None
    session["client_secret"] = None
    session["go_id"] = None
    session["test_mode"] = None

如果我改为使用 before_request,则每次请求都会进行初始化,并且变量总是会被覆盖。

我怎样才能初始化每个 session ,但只初始化一次?

最佳答案

试试这个方法对我有用

if not session.get('authorized'):
   session['authorized'] = False

if not session.get('client_id'):
   session['client_id'] = None

if not session.get('client_secret'):
   session['client_secret'] = None

if not session.get('go_idt'):
   session['go_id'] = None

if not session.get('test_mode'):
   session['test_mode'] = None

关于python - 如何在 Flask 中初始化 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60324369/

相关文章:

python-3.x - Jsonify 异常错误

python - python中flask和sqlalchemy的多对多

python - 创建一个简单的 python 对象并将其发送回 Mako.template.render()

python - 如果元素不存在,selenium 中的条件语句

动态类变量名的 pythonic 方法(ala PHP 的 $$var)

python - 从哪里可以获得 python27.dll 和 wxmsw dll

flask - 使用 SQLAlchemy 构建 Flask-Restful API

google-chrome - Chrome 更新后无法在 Google Apps Script 网络应用程序中下载文件

java - session 超时的工作方式与我希望的不同

javascript - 从 Servlet 到 Jquery 的数组的数组