如果session.modified如何不是会话,如何理解flask会话片段:

时间:2016-12-07 08:24:23

标签: python session flask redis

当我阅读Server-side Sessions with Redis或 flask.sessions.SecureCookieSessionInterface源代码 我有点困惑,如果'声明。 如果会话为None,那么代码是否应该尝试在下一行获取session.sid或检查修改后的标志?

def save_session(self, app, session, response):
    domain = self.get_cookie_domain(app)
    if not session:
        self.redis.delete(self.prefix + session.sid)
        if session.modified:
            response.delete_cookie(app.session_cookie_name,
                                   domain=domain)
        return
请告诉我为什么,非常想。

1 个答案:

答案 0 :(得分:0)

session将是RedisSession的一个实例,它是dict的子类。检查dict的真实性如果为空则返回False。会话为空时,Redis记录和cookie将被清除。

您将if not session:if session is None:混淆。检查会话的真实性并不意味着它没有设置,只是意味着它是假的。