如何在基于 GAE 的应用程序中更新 webapp2_extras 会话
How to update webapp2_extras session in GAE based application
我有两个问题:
第一个问题是创建会话后(经常)更新它是一种好习惯吗?如果不是,那么可能发生的问题是什么?
我正在开发基于 GAE 的应用程序,并使用 GAE 提供的 webapp2_extras 身份验证模型进行身份验证。
我正在尝试更新会话属性的值(在创建后),但它似乎不起作用。
确切的代码片段是:
updates = {'fullname': 'sdsdsdsdsd'}
self.auth.set_session_data(session, **updates)
但是,它抛出一个错误:
TypeError: set_cookie() got an unexpected keyword argument 'fullname'
根据库的文档,它应该可以工作。因为,它写道:
def set_session_data(self, data, **session_args):
"""Sets the session data as a list.
:param data:
Deserialized session data.
:param session_args:
Extra arguments for the session.
"""
data = self.store.serialize_session(data)
if data is not None:
self.session['_user'] = data
self.session.container.session_args.update(session_args)
有人可以帮我吗?另外,解释一下我是否应该更新会话?我有一个场景,我会这样做,但看起来不太好。我认为会话一旦创建就不应手动更新。
它需要是这样的:
self.auth.set_session_data(updates)
但这会清除所有已经存在的密钥(比如 'user_id',这是授权工作所必需的),所以也许可以这样做:
session_data = self.auth.get_session_data()
session_data['fullname'] = 'sdsdsdsdsd'
self.auth.set_session_data(session_data)
我不知道您要传入的 session
变量是什么,但是 set_session_data()
只设置了 self.session
我有两个问题:
第一个问题是创建会话后(经常)更新它是一种好习惯吗?如果不是,那么可能发生的问题是什么?
我正在开发基于 GAE 的应用程序,并使用 GAE 提供的 webapp2_extras 身份验证模型进行身份验证。 我正在尝试更新会话属性的值(在创建后),但它似乎不起作用。
确切的代码片段是:
updates = {'fullname': 'sdsdsdsdsd'}
self.auth.set_session_data(session, **updates)
但是,它抛出一个错误:
TypeError: set_cookie() got an unexpected keyword argument 'fullname'
根据库的文档,它应该可以工作。因为,它写道:
def set_session_data(self, data, **session_args):
"""Sets the session data as a list.
:param data:
Deserialized session data.
:param session_args:
Extra arguments for the session.
"""
data = self.store.serialize_session(data)
if data is not None:
self.session['_user'] = data
self.session.container.session_args.update(session_args)
有人可以帮我吗?另外,解释一下我是否应该更新会话?我有一个场景,我会这样做,但看起来不太好。我认为会话一旦创建就不应手动更新。
它需要是这样的:
self.auth.set_session_data(updates)
但这会清除所有已经存在的密钥(比如 'user_id',这是授权工作所必需的),所以也许可以这样做:
session_data = self.auth.get_session_data()
session_data['fullname'] = 'sdsdsdsdsd'
self.auth.set_session_data(session_data)
我不知道您要传入的 session
变量是什么,但是 set_session_data()
只设置了 self.session