在Python + Google App Engine中重定向用户

时间:2010-11-20 04:39:10

标签: python google-app-engine redirect

我正在尝试在记录用户后进行简单的重定向。我以为我可以使用打印“位置:...”方法,但这似乎没有办法。

class MainPage(webapp.RequestHandler):
    def get(self):

        ip = self.request.remote_addr
        log = Log()
        log.ip_address = ip
        log.put()
        print "Location:http://www.appurl.com"

2 个答案:

答案 0 :(得分:14)

RequestHandler有一个redirect()方法可以使用。它需要两个参数,第一个是重定向的url,第二个是boolean值。如果传递true,则会发送301代码以指示永久重定向,如果未向其传递显式值,则默认为false,并向客户端发送302代码以指示临时重定向。

这样的事情:

class MainPage(webapp.RequestHandler):
    def get(self):

        ip = self.request.remote_addr
        log = Log()
        log.ip_address = ip
        log.put()
        self.redirect("http://www.appurl.com") # replaced this -> print "Location:http://www.appurl.com"

答案 1 :(得分:1)

另一种选择是直接在appengine_config.py

上进行

即。如果您想将所有内容重定向到“http://www.google.com”,可以添加以下内容:

def webapp_add_wsgi_middleware(app):

    return webapp.WSGIApplication([('/*', webapp.RedirectHandler.new_factory('http://www.google.com', permanent=True))], debug=True)

即。如果你想根据你可以做的主机做某事:

def webapp_add_wsgi_middleware(app):

    if 'mydomain.com' in os.environ.get('HTTP_HOST'):
        return webapp.WSGIApplication([('/*', webapp.RedirectHandler.new_factory('http://www.google.com/', permanent=True))],
    debug=True)
    else:
        return app