Python google appengine会话使用webapp2_extras混淆

时间:2014-08-13 05:15:55

标签: python google-app-engine session

我正在尝试创建用户会话,如http://www.essentialtech.co.nz/content/using_session_google_app_engine_and_python_27所述。下面是Login页面处理程序类。一切都很好,但我无法理解'self.session.get('referrer')'会做什么。我用Google搜索并发现'HTTP_REFERER'指的是您来自的网站网址。但是为什么我们需要在Login处理程序中呢?如果有人可以向我解释,我感到很高兴。

class LogIn(BaseHandler):
    def get(self):
        if self.session.get('user'):
            del self.session['user']
        if not self.session.get('referrer'):
            self.session['referrer'] = \
                self.request.environ['HTTP_REFERER'] \
                if 'HTTP_REFERER' in self.request.environ \
                else '/'
        template_values = {
            }
        template = jinja_environment.get_template('login.html')
        self.response.out.write(template.render(template_values))

    def post(self):
        user = self.request.get('user')
        self.session['user'] = user
        logging.info("%s just logged in" % user)
        self.redirect('/')

1 个答案:

答案 0 :(得分:2)

我认为它用于知道登录后重定向用户的位置。但是POST会重定向到'/',所以看起来不像是插入了,至少不在这个片段中。如果你从一个完全不同的网站进来,这没有意义。所以也许它只是用于记录/跟踪目的。再次,在这个片段中没有详细说明。