Skip to content

Instantly share code, notes, and snippets.

@kgleeson
Created September 9, 2012 19:56
Show Gist options
  • Select an option

  • Save kgleeson/3686861 to your computer and use it in GitHub Desktop.

Select an option

Save kgleeson/3686861 to your computer and use it in GitHub Desktop.
import webapp2
import re
class MainPage(webapp2.RequestHandler):
with open('login.html', 'rU') as f:
html = f.read()
data = {'username':'',
'password':'',
'verify':'',
'email':'',
'usererror':'',
'passerror':'',
'verifyerror':'',
'emailerror':''}
def write_form(self, **kwargs):
self.response.write(self.html % kwargs)
def check_user(self, user):
userRE = re.compile('^[a-zA-Z0-9_-]{3,20}$')
if userRE.match(user):
return user
def check_password(self, password):
passRE = re.compile('^.{3,20}$')
if passRE.match(password):
return password
def check_email(self, email):
emailRE = re.compile('^[\S]+@[\S]+\.[\S]+$')
if emailRE.match(email):
return email
def verify_passwords(self, pass1, pass2):
if pass1 == pass2:
return True
def get(self):
self.write_form(**self.data)
def post(self):
user_username = self.request.get('username')
user_password = self.request.get('password')
user_verify = self.request.get('verify')
user_email = self.request.get('email')
username = self.check_user(user_username)
password = self.check_password(user_password)
verify = self.verify_passwords(user_password, user_verify)
email = self.check_email(user_email)
if(username and password and verify and email):
print 'awesome'
else:
if not username:
self.data['usererror'] = "Username is not correct"
if not password:
self.data['passerror'] = "Password is not 3-20 chars long"
if not verify:
self.data['verifyerror'] = "Passwords do not match"
if not email:
self.data['emailerror'] = "Email address is not [email protected]"
self.data['username'] = user_username
self.data['password'] = user_password
self.data['verify'] = user_verify
self.data['email'] = user_email
self.write_form(**self.data)
app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment