def post(self): username = self.request.get('username') password = self.request.get('password') verify = self.request.get('verify') email = self.request.get('email') uError = pError = vError = eError = '' if not validUser(username): uError = 'That is not a valid user name.' else: q = db.GqlQuery('select * from User where name = :1', username) user = q.get() if user: uError = 'That user name already exists' if not validPassword(password): pError = 'That is not a valid password.' if password != verify: vError = 'The passwords do not match.' if email and not validEmail(email): eError = 'That is not a valid email address.' if uError or pError or vError or eError: self.render_signup(username, uError, pError, vError, email, eError) else: pwHasher = PasswordHash() pwHash = pwHasher.make_pw_hash(username, password) user = User(name = username, pwHash = pwHash, email = email) user.put() cookieHasher = CookieHash() cookieHash = cookieHasher.make_secure_val(str(user.key().id())) self.response.set_cookie('user_id', cookieHash) url = self.request.url url = url[:url.rfind('/signup')] url = url[url.rfind('/') + 1:] self.redirect('/%s/' % url)