使用 webapp2 重定向以捕获 URL 参数

Redirect using webapp2 to capture the URL parameters

我为注册页面编写了代码,要求提供用户名、密码和电子邮件等信息。用户输入正确后,页面重定向到

'/welcome?username=name'

我正在使用 self.redirect。通过使用方法重定向,我将新的 URL 作为“/welcome”。我将如何包含查询参数?我还希望 user_name 显示到重定向页面,如:

Welcome name

我该怎么做? 这是我写的 class 来处理 '/welcome'

class welcomeHandler(webapp2.RequestHandler):
    def get(self):
        self.response.out.write("Welcome")

app = webapp2.WSGIApplication([
    ('/', MainHandler),('/welcome',welcomeHandler)], debug=True)

为什么要这样处理用户问候语?将其作为模板变量传递或按以下方式进行:

class welcomeHandler(webapp2.RequestHandler):
    def get(self):
        self.response.out.write("Welcome %s") % username

此外,请确保在用户注册后为他们创建一个会话,否则您只是在创建他们的凭据,而不是让他们实际登录。

您需要使用字符串替换。假设您将用户名存储在名称中。因此你需要写:

self.redirect("/Welcome/username="+name)

如果需要编码,可以用这个:

import urllib
self.redirect('/welcome?' + urllib.urlencode({'username': name})

如果您需要添加更多查询参数,只需将它们添加到字典中,如 How to urlencode a querystring in Python? 所示。