Übertragen von Daten zwischen Seiten in einer redirect () -Funktion in Google App Engine

Ich versuche, ein einfaches Blog mit GAE zu erstellen, und habe den folgenden Code erstellt (ich habe die Teile gelöscht, die nicht mit dieser Frage zusammenhängen):

# LOADING THE TEMPLATE INTO THE JINJA ENVIRONMENT
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape = True)

# HELPER FUNCTION
def render_str(template, **params):
    t = jinja_env.get_template(template)
    return t.render(params)

# GOOGLE DATASTORE DATABASE
class Entries(db.Model):
    title = db.StringProperty(required = True)
    body = db.TextProperty(required = True)
    created = db.DateTimeProperty(auto_now_add = True)

# HANDLER FUNCTIONS
class SignUp(webapp2.RequestHandler):
    def get(self):
        self.response.write(render_str('signup.html'))

    def post(self):
        have_error = False
        username = self.request.get('username')
        password = self.request.get('password')
        verify = self.request.get('verify')
        email = self.request.get('email')

        params = dict(username = username, email = email)

        if not valid_username(username):
            params['error_username'] = "That's not a valid username."
            have_error = True

        if not valid_password(password):
            params['error_password'] = "That wasn't a valid password."
            have_error = True
        elif password != verify:
            params['error_verify'] = "Your passwords didn't match."
            have_error = True

        if not valid_email(email):
            params['error_email'] = "That's not a valid email."
            have_error = True

        pwhash = make_secure_val(password)
        self.response.headers.add_header('Set-Cookie', 'uid: %s' % str(pwhash))

        if have_error:
            self.response.write(render_str('signup.html', **params))
        else:
            self.redirect('/welcome')

class Welcome(webapp2.RequestHandler):
    def get(self):
        self.response.write(render_str('welcome.html'))

# APP HANDLERS
app = webapp2.WSGIApplication([('/', MainPage),
                            ('/newpost', NewPost),
                            ('/newpost/(\d+)', Permalink),
                            ('/signup', SignUp),
                            ('/welcome', Welcome)
                            ], debug=True)

signup.html ist eine einfache Form, die dasusername, password, password erneut zur Bestätigung und ein optionalesemail.

make_secure_val() ist nur eine Hash-Funktion, die ein @ zurückgiHMAC Hash-Version der Argumentzeichenfolge im Formatargument|HMAC(argument).

So, hier ist meine Frage: Sobald sich der Benutzer anmeldet, möchte ich zu einer anderen URL weiterleiten/welcome, damit ich das @ benutredirect() Funktion. Aber ich möchte auch das @ druckusername Der Benutzer hat auf der Begrüßungsseite eine Eingabe in das Formular vorgenommen. Nur so kann ich Variablen in einem @ übergebredirect() soll über @ an die URL übergeben werdGET. Ich möchte aber nicht, dass die URL den Benutzernamen anzeigt. Ich möchte es wie in @ als Template-Variable übergebrender_str(). Aber wenn ich @ benutrender_str() in demPOST Methode vonSignUp, die URL bleibt/signup.

Wie gebe ich die Daten an ein @ weiteredirect()?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage