Advertisement
Guest User

Untitled

a guest
Dec 1st, 2014
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.85 KB | None | 0 0
  1. import webapp2
  2.  
  3.  
  4. form = """
  5.     <form method = "post">
  6.     <div> Signup </div>
  7.     <br>
  8.     <br
  9.  
  10.     <div>
  11.     <label> Username
  12.         <input type="textarea" name="username" value="%(username)s">
  13.     </label> <span style="color: red">%(us_error)s</span>
  14.     </div>
  15.  
  16.     <div>
  17.     <label> Password
  18.         <input type="textarea" name="password" value="">
  19.     </label> <span style="color: red">%(pw_error)s</span>
  20.     </div>
  21.  
  22.     <div>
  23.     <label> Verify Password
  24.         <input type="textarea" name="verify" value="">
  25.     </label> <span style="color: red">%(vpw_error)s</span>
  26.     </div>
  27.  
  28.     <div>
  29.     <label> Email (optional)   
  30.         <input type="textarea" name="email" value="%(email)s">
  31.     </label> <span style="color: red">%(em_error)s</span>
  32.     </div>
  33.  
  34.     <br>
  35.     <input type="submit">
  36. </form>
  37. """
  38. import cgi
  39.  
  40. def escape_html(s):
  41.     return cgi.escape(s, quote = True)
  42. import re
  43. USER_RE = re.compile(r"^[a-zA-Z0-9_-]{3,20}$")
  44. USER_PW = re.compile(r"^.{3,20}$")
  45. USER_EM = re.compile(r"^[\S]+@[\S]+\.[\S]+$")
  46.  
  47. def valid_username(username):
  48.     return USER_RE.match(username)
  49.  
  50. def valid_password(password):
  51.     return USER_PW.match(password)
  52.  
  53. def valid_email(email):
  54.     return USER_EM.match(email)    
  55.  
  56.  
  57.  
  58.    
  59.  
  60. class MainHandler(webapp2.RequestHandler):
  61.     def write_form(self, us_error="", pw_error="", vpw_error="", em_error="", username="", email=""):
  62.         self.response.write(form % {"us_error": us_error,
  63.                                     "pw_error": pw_error,
  64.                                     "vpw_error": vpw_error,
  65.                                     "em_error": em_error,
  66.                                     "username": username,
  67.                                     "email": email})
  68.  
  69.     def get(self):
  70.         self.write_form()
  71.  
  72.     def post(self):
  73.         user_name = escape_html(self.request.get('username'))
  74.         pass_word = escape_html(self.request.get('password'))
  75.         vpass_word = escape_html(self.request.get('verify'))
  76.         e_mail = escape_html(self.request.get('email'))
  77.  
  78.         username = valid_username(user_name)
  79.         password = valid_password(pass_word)
  80.         email = valid_email(e_mail)
  81.  
  82.         us_error = ""
  83.         pw_error = ""
  84.         vpw_error = ""
  85.         em_error = ""
  86.         if username == None:
  87.             username = user_name
  88.  
  89.         if email == None:
  90.             email = e_mail
  91.  
  92.         if not username:
  93.             us_error = "That's not a valid username."
  94.         if not password:
  95.             pw_error = "That's not a valid password."
  96.         if pass_word != vpass_word:
  97.             vpw_error = "Your passwords didn't match."
  98.         if e_mail:
  99.             if not email:
  100.                 em_error =  "That's not a valid email."
  101.  
  102.         self.write_form(us_error, pw_error, vpw_error, em_error, user_name, e_mail)
  103.  
  104.         if not (us_error or pw_error or vpw_error):
  105.  
  106.             self.redirect("/welcome")
  107.  
  108. class WelcomeHandler(webapp2.RequestHandler):
  109.     def get(self):
  110.         user = self.request.get('username')
  111.         self.response.write("Welcome" + "," + " " + user)                                                                                                            
  112.  
  113.  
  114.  
  115.  
  116.          
  117.        
  118.  
  119.  
  120.  
  121. app = webapp2.WSGIApplication([('/', MainHandler), ("/welcome", WelcomeHandler)], debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement